mercredi 28 février 2018

(Installer) configurer apache, php, mysql sur MacOS High Sierra (10.13 et 10.13.3)

Bonjour à toutes et à tous,
aujourd'hui nous allons mettre en route un serveur Apache sur MacOS high sierra sur une machine fraichement installée ou acquise. cela devrait aussi marcher pour les autres versions inférieur ou non.

Suite à des petits soucis sur mon MacBook Pro avec MacOS 10.13.2 (l'espace disque utilisé augmentait à vu d'oeil, ça sera l'objet d'un autre tuto), j'ai due réinstaller mon système et je suis passé à MacOS 10.13.3 et me voilà avec une machine rutilante et neuve.

I- (Installation) activation d'apache:
    ---------------------------------------
Après quelques lectures ici et là, je me rend compte que apache est installé par défaut sur macOS quelque soit la version. Il suffit donc de l'activer. et pour cela, on tape dans le terminale la commande suivante
sudo apachectl start

et apache est lancé, pour s'en assurer on lance Safari et on tape "localhost" et un joli "It work!" apparait:

Voilà! Apache fonctionne, mais nous avons besoin des autres paquet du serveur, notamment Php et mysql.

II- (Installation) activation de PHP:
     --------------------------------------

Nous avons très certainement de la chance car ici encore MacOS High sierra est livré avec Php. Et heureusement pour nous Apple a bien fait les choses, nous avons Php7.1 qui est livrée avec High Sierra 10.3.3.

Pour activer Php, nous avons juste besoins d'éditer le fichier de configuration d'apache pour lui dire de charger la version de php qui nous convient. Pour cela, éditer le fichier /etc/apache2/httpd.conf avec l'éditeur nano (qui est par défaut disponible sur tous les OS dérivés d'unix - eh oui, MacOS en un -, on tape dans le terminale et on valide:

 sudo nano /etc/apache2/httpd.conf 

Notre mot de passe est requis donc il faut le tapez et la fenêtre suivante s'affiche:


En bas de page nous avons les raccourcis clavier permettant d'éditer le fichier. Un "ctrl W" permet de lancer le mode recherche il faut donc entrer "php" puis faire "entrer", nano nous conduit à la ligne contenant l'expression php indiquant: #LoadModule php7_module libexec/apache2/libphp7.so

Il faut donc décommenter cette ligne en y enlevant le # , qui indique un commentaire dans les fichiers de configuration dans apache.

Notre ligne devient donc
LoadModule php7_module libexec/apache2/libphp7.so

"Ctrl O" puis entrer nous permet de mettre à jour le fichier en prenant en compte les modifications que nous venons de faire.

Puis enfin "Ctrl X" nous permet de quitter le fichier de configuration et donc nano.

Il faut donc redémarrer apache pour charger cette modification et donc cette nouvelle configuration:

 sudo apachectl restart

Php7 est lancé et chargé par Apache mais il faut bien tester cela.

Sachant qu'Apache a besoins d'un répertoire pour stocker les sites web htdocs et sur macOS c'est /Library/WebServer/Documents.

Ici nous allons créer un répertoire pour nos sites dans notre répertoire personnel (nom-utilisateur) et le nommer Sites.

Si par exemple l'utilisateur est bemous, alors dans le dossier bemous, on crée Sites et il est automatiquement reconnu par Safari en tant que tel: mkdir /Users/bemous/Sites 

Il faut en suite modifier httpd.conf pour prendre en compte cette situation (la racine du serveur web):

on lance nano et on recherche /Library/WebServer/Documents que l'on devra remplacer par "/Users/Nom-Utilisateur/Sites" dans mon cas ce sera "/Users/bemous/Sites" :

sudo nano /etc/apache2/httpd.conf
 nous ouvre le fichier de configuration d'apache avec nano (mot de passe requis);
Une fois les deux lignes modifiées, vous devez les valider en tapant "ctrl O" puis "touche Entrer" et "Ctrl X" pour quitter Nano. Ainsi les lignes
#DocumentRoot "/Library/WebServer/Documents"
#<Directory "/Library/WebServer/Documents">

deviennent:
DocumentRoot "/Usersy/bemous/Sites"
<Directory "/Users/bemous/Sites">

et on redémarre apache pour la prise en compte de cette modification:
bemous$ sudo apachectl restart

Nous allons créer à présent un fichier phpinfo() c'est à dire un fichier index.php ou infos.php contenant les lignes suivantes (prenez l'éditeur de votre choix, moi j'utilise sublime Text3) :



C'est terminer Php7 est activer. Lancer Safari, puis http://localhost/(nom du fichier créer).php
Chez moi c'est http://localhost/info.php et voilà le résultat:

Php7.1.7 est bel et bien installé et prêt à être utilisé.

III- Installation de mySql:
      --------------------------
MySql quant à lui, il doit être purement et simplement installé. Il est important de savoir que l'on a le choix entre MySql et Mariadb (qui est le fork de MySql depuis l'acquisition de celui-ci par Oracle).
Pour cela rendez vous à l'adresse https://dev.mysql.com/downloads/mysql/ pour télécharger l'une des versions qui vous intéresse:

Quant à moi, j'ai téléchargé la version mysql-5.7.21-1-macos10.13-x86_64.dmg

Un double click sur le fichier .dmg télécharger un autre fichier avec l'extension ".pkg" s'affiche et un double click sur celui-ci permet de lancer l'installer:



Valider les instructions en clinquant sur "suivant", entrer le "mot de passe" utilisateur demandé et l'installation se poursuit et vous propose le mot de passe root par défaut:


ATTENTION!: vous devez notez ce mot de passe dans un lieu sur avant de cliquez sur "OK" puis "Fermer"

Pour lancer MySQL, allez dans "Préférences Systèmes" et vous y verrez une icône de MySQL Agent qui permet de lancer le serveur et/ou de l'arrêter:


Un click dessus lance une fenêtre donnant le statut du server MySQL:
Un click permet de lancer le serveur MySQL, notez que le mot de passe utilisateur est requis; noter aussi que la case "Automaticaly Start MySQL server on Startup" est cochée: MySQL se lance en même temp que le système. Si l'on veut démarrer MySQL soit même, alors décocher cette case. 
Voilà, nous venons d'installer MySQL sur notre serveur.

Il est impératif pour nous de changer le mot de passe par défaut fourni par MySQL; pour cela nous allons nous connecter par le terminal à MySQL et changer son mot de passe:
On tape
bemous$ sudo /usr/local/mysql/bin/mysql -u root -p
et le mot de passe de bemous est requis (utilisateur système); on entre le mot de passe de bemous.
Un autre mot de passe nous est demandé: c'est celui que nous avons copie à la fin de l'installation de MySQL (mot de passe du root): on le rentre et hop, nous sommes connecter à MySQL








Ici on saisit la syntaxe suivante pour modifier le passe de root: ALTER USER 'root'@'localhost' IDENTIFIED BY 'motdepasse';

Il faut remplacer 'motdepasse' par celui que vous souhaiter définir comme nouveau mot de passe de root.

Ainsi nous venons d'installer et configurer MySQL. Il nous faut à présent un outil d'administration:
 
Ici nous avons l'empara du choix d'autant plus que nous avons PhpMyAdmin, MySQL Workbench (que j'apprécie personnellement), SequelPro ... d'autre s'en tiendront aux ligne de commandes:
Le choix vous appartient; quant à moi, j'utilise MySQL Workbench pour sa convivialité et ça simplicité. Il vous faut juste télécharger le fichier .dmg sur le lien indiqué ci dessus et suivre les indications c'est à dire copier le fichier dans "Applications":

Connecter vous comme bon vous semble et éclatez-vous: 



J'espère vous avoir été utile.

Merci pour votre attention et n'oubliez surtout pas de faire vos critiques et suggestions.