Homebrew est un gestionnaire de paquets gratuit et open-source pour macOS écrit en Ruby. Grace à lui, l'installation de paquets logiciels est grandement facilité, il permet également de maintenir à jour tout ce qui a été installé par son intermédiaire. Créé en 2009 par Max Howell, il est aujourd'hui un logiciel incontournable dans l'environnement Apple que l'on soit développeur ou simple utilisateur.
Nous allons voir comment, grâce à Homebrew, nous pouvons installer les outils indispensable au développement web, à savoir :
- Le serveur web Apache,
- La base de données MariaDB,
- Le langage PHP,
- et PHPMyAdmin pour administrer les bases de données.
1. Installation et vérification de Homebrew
Homebrew doit être installé sur votre machine. Si ce n'est pas le cas, rendez-vous sur le site officiel pour exécuter son script d'installation : https://brew.sh/
Vous devez également vous assurer que Homebrew fonctionne correctement avec la commande suivante :
brew doctor
2. Arrêt du serveur Apache fourni par macos
macos dispose d'un serveur Apache, mais celui-ci se prête mal au développement puisque ses fichiers de configurations peuvent être modifiés par les mises à jour du système. Nous devons donc l'arrêter et nous assurer qu'il ne sera plus lancé au démarrage du système.
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
3. Préparation de l'installation
Nous devons créer le dossier racine de notre serveur web dans notre dossier utilisateur. Si ce dossier existe déjà, passez directement à l'étape suivante.
mkdir ~/Sites
4. Installation du serveur web Apache
Nous allons commencer l'installation par le serveur web Apache en utilisant la commande suivante :
brew install httpd
A l'heure où j'écris ces lignes, c'est la version 2.4.48-1 d'Apache qui s'installe.
Pour lancer le serveur, nous allons utiliser le gestionnaire de services de Homebrew :
sudo brew services start httpd
Il est nécessaire de le lancer précédé de la commande sudo la première fois, mais ensuite, il devra être lancé en mode utilisateur.
Je vous invite donc à le faire tour de suite en lançant successivement les deux commandes suivantes :
brew services stop httpd
brew services start httpd
Je vous invite maintenant à vérifier le bon fonctionnement de votre serveur web en vous rendant à l'adresse suivante : http://localhost:8080
Vous devriez voir le texte suivant : It works!
Le serveur web étant lancé en tant que service, il sera automatiquement disponible au démarrage de votre mac.
5. Configuration du serveur Apache
Nous allons maintenant personnaliser la configuration du serveur web, pour faire en sorte qu'on puisse l'utiliser depuis notre répertoire Sites créé précédemment.
Pour cela, il faut éditer le fichier /usr/local/etc/httpd/httpd.conf et remplacer les éléments suivants :
Nous allons tout d'abord changer le port d'écoute en http :
Listen 8080 => Listen 80
Puis nous allons changer le dossier racine du serveur :
DocumentRoot "/Users/UTILISATEUR/Sites"
<Directory "/Users/UTILISATEUR/Sites">
Bien entendu, nous devons remplacer UTILISATEUR par notre identifiant utilisateur.
Dans la section Directory que nous venons de modifier, nous devons également modifier :
AllowOverride All
Activation du rewrite_module en enlevant le commentaire :
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
On remplace ensuite le User / Group qui sera utilisé par Apache.
User UTILISATEUR
Group staff
Il ne reste plus qu'à modifier le ServerName :
ServerName localhost:80
Maintenant que le serveur Apache est configuré, il ne reste plus qu'à le relancer :
sudo apachectl restart
6. Installation de php
L'installation de php est très simple. Là encore, nous allons utiliser la commande brew.
Nous n'allons pas préciser de version de telle sorte que Homebrew installera la dernière version en date, c'est à dire la version 8.
Si vous souhaitez préciser un numéro de version, vous pouvez le faire en ajoutant un @VERSION à la fin de la commande (en remplaçant VERSION par le numéro de version souhaité).
brew install php
On lance ensuite php en tant que service avec la commande suivante :
brew services start php
7. Configuration d'Apache pour PHP
Nous devons maintenant configurer Apache pour qu'il puisse servir des pages en php.
Pour cela, il va falloir ajouter une ligne dans le fichier de configuration d'Apache /usr/lib/etc/httpd/httpd.conf
LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so
Il faut ensuite ajouter une clause permettant d'identifier index.php comme index de répertoire au même titre que index.html.
Pour cela, cherchez la ligne qui contient DirectoryIndex et ajoutez y index.php.
DirectoryIndex index.html index.php
Juste après la section DirectoryIndex, il y a lieu de rajouter une directive pour indiquer à Apache comment prendre en charge les fichiers avec l'extension php.
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Enfin, comme à chaque fois que nous modifions le fichier de configuration d'Apache, il y a lieu de le relancer.
sudo apachectl restart
8. Installation de MariaDB
MariaDB s'installe, comme les autres composants de notre pile LAMP, au moyen de la commande brew :
brew install mariadb
Nous lançons ensuite le service avec la commande :
brew services start mariadb
9. Configuration de MariaDB
Nous allons maintenant sécuriser notre installation de MariaDB au moyen de la commande mysql_secure_installation. Vous n'avez qu'à suivre l'assistant et donner les réponses qui figurent ci-dessous :
sudo mysql_secure_installation
Enter current password for root (enter for none):
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
10. Configuration complémentaire
Il peut être pratique de créer des liens vers les fichiers de configuration de votre pile LAMP dans votre dossier Sites.
Je vous conseille donc de lancer les commandes suivantes :
mkdir /Users/$USER/Sites/etc
ln -s /usr/local/etc/httpd /Users/$USER/Sites/etc/httpd
ln -s /usr/local/etc/my.cnf /Users/$USER/Sites/etc/my.cnf
ln -s /usr/local/etc/php/8.0 /Users/$USER/Sites/etc/php
11. Installation de PHPMyAdmin
La première étape est très simple, comme a chaque fois avec brew.
brew install phpmyadmin
Il faut ensuite configurer le fichier /usr/local/etc/httpd/httpd.conf pour que PHPMyAdmin soit accessible :
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
La dernière étape consiste à relancer le serveur Apache afin de relire la nouvelle configuration :
sudo apachectl restart