Recommandons de passer à Docker
J’ai finalement passé à l’utilisation de Docker pour le développement local sur macOS. Bien que le tutoriel suivant fonctionne pour macOS Catalina, il a des limites. Je recommande de suivre mon dernier tutoriel sur l’installation d’Apache, MySQL et PHP sur macOS à l’aide de Docker.
Note : Ce post est destiné aux nouvelles installations. Si vous avez installé Apache, PHP et MySQL pour Mac OS Mojave, lisez mon billet sur la mise à jour d’Apache, PHP et MySQL pour macOS Catalina.
Je connais les logiciels de serveur web disponibles pour macOS, notamment MAMP, ainsi que les gestionnaires de paquets comme brew
. Ceux-ci vous permettent de démarrer rapidement. Mais ils renoncent à l’expérience d’apprentissage et, comme le rapportent la plupart des développeurs, peuvent devenir difficiles à gérer.
macOS fonctionne au-dessus d’UNIX. La plupart des logiciels UNIX s’installent facilement sur macOS. En outre, Apache et PHP sont préinstallés sur macOS. Ainsi, pour créer un serveur web local, tout ce que vous devez faire est de configurer Apache et d’installer MySQL.
Exécution des commandes
D’abord, ouvrez l’application Terminal et passez à l’utilisateur root
afin de pouvoir exécuter les commandes de ce post sans aucun problème de permission :
sudo su -
Activer Apache sur macOS
apachectl start
Vérifier que ça marche ! en accédant à http://localhost
Activer PHP pour Apache
D’abord, faites une sauvegarde de la configuration par défaut d’Apache. C’est une bonne pratique et cela sert de comparaison avec les futures versions de macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.Catalina
Maintenant, éditez la configuration d’Apache. N’hésitez pas à utiliser un autre éditeur si vous n’êtes pas familier avec vi.
vi httpd.conf
Décommentez la ligne suivante (supprimez #
):
LoadModule php7_module libexec/apache2/libphp7.so
Redémarrez Apache:
apachectl restart
Vous pouvez vérifier que PHP est activé en créant une page phpinfo()
dans votre DocumentRoot
.
La DocumentRoot
par défaut pour macOS Catalina est /Library/WebServer/Documents
. Vous pouvez le vérifier à partir de votre configuration Apache.
grep DocumentRoot httpd.conf
Maintenant, créez la page phpinfo()
dans votre DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Vérifiez PHP en accédant à http://localhost/phpinfo.php
Installation de MySQL sur macOS Catalina
Téléchargez et installez la dernière version de MySQL généralement disponible DMG pour macOS. MySQL 8 est la version la plus récente. Mais des versions plus anciennes sont disponibles si vous avez besoin de prendre en charge des applications plus anciennes.
Lorsque l’installation se termine, il vous fournira un mot de passe temporaire. Copiez ce mot de passe avant de fermer le programme d’installation. Vous l’utiliserez à nouveau dans quelques étapes.
Le README suggère de créer des alias pour mysql
et mysqladmin
. Cependant, il y a d’autres commandes qui sont utiles telles que mysqldump
. Au lieu de cela, vous pouvez mettre à jour votre chemin pour inclure /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Note : Vous devrez ouvrir une nouvelle fenêtre de Terminal ou exécuter la commande ci-dessus pour que votre chemin soit mis à jour.
Enfin, vous devriez exécuter mysql_secure_installation
. Bien que ce ne soit pas nécessaire, c’est une bonne pratique pour sécuriser votre base de données. C’est également là que vous pouvez changer ce méchant mot de passe temporaire en quelque chose de plus gérable pour le développement local.
Connecter PHP et MySQL
Vous devez vous assurer que PHP et MySQL peuvent communiquer entre eux. Il existe plusieurs options pour le faire. J’aime la suivante car elle ne nécessite pas de changer beaucoup de configuration :
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Configuration supplémentaire (facultative)
La configuration par défaut d’Apache 2.4 sur macOS semblait assez maigre. Par exemple, les modules communs comme mod_rewrite
étaient désactivés. Vous pouvez envisager de les activer maintenant pour éviter d’oublier qu’ils sont désactivés à l’avenir.
J’ai modifié ma configuration d’Apache :
vi /etc/apache2/httpd.conf
J’ai décommenté les lignes suivantes (supprimez #
) :
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Si vous développez plusieurs projets et que vous souhaitez que chacun d’entre eux ait une url unique, vous pouvez configurer des VirtualHosts Apache pour macOS.
Si vous souhaitez installer PHPMyAdmin, revenez à mon post original sur l’installation d’Apache, PHP et MySQL sur macOS.
Vous avez trouvé cela intéressant ? Continuons la conversation sur Twitter.