Installer PHP sur MacOs

Récemment j’ai voulu installer MAMP (l’équivalent de WAMP sous Mac mais en moins bien je pense), je n’ai pas réussi à configurer les virtual host, la raison est qu’il existe déjà un Apache sous MacOs puisque c’est un système basé sur Unix.

J’ai donc décidé d’installer à la main de quoi faire un serveur PHP avec une base MySQL.

Installation de PHP et configuration sour MacOS

Il faut aller dans le répertoire de configuration d’Apache /etc/apache2/httpd.conf

décommenter la ligne de chargement du module PHP

LoadModule php7_module libexec/apache2/libphp7.so

testez votre script PHP, si apache affiche le code PHP c’est qu’il ne gère pas encore les script PHP, il lui faut dire comment interpréter les fichier avec l’extension php

<FilesMatch .php>
SetHandler application/x-httpd-php
</FilesMatch>

 Normalement redémarrez Apache avec la commande :

sudo apachectl -k restart

Ensuite il faut indiquer quel est le fichier qui servira d’index, en effet ça ne se fait pas tout seul.

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

Où se trouve le fichier avec le message It Works !?

Lorsque que vous entrez l’adresse http://localhost/ vous avez une page avec le message « It Works ! », le problème est  de localiser ce fichier.

Allez dans le fichier httpd.conf, et localisez la chaine de caractères « DocumentRoot », et assurez vous d’avoir le script :

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

Pourquoi mon script PHP ne peut écrire sur son répertoire?

Tout simplement (enfin faut le savoir !) parce que c’est Apache qui exécute le script PHP et que par défaut Apache est un autre utilisateur.

Dans le fichier de configuration httpd.conf, cherchez la chaine « Group » et remplacez la

#User _www
#Group _www
User monuser
Group staff

Apache va maintenant s’exécuter en lieu et place de vous.

Note sur quelques commande Apache

# Reloader le fichier configuration sans redémarrer le serveur après une modification du fichier httpd.conf
$ sudo apachectl graceful

# Redémarrage d'Apache
$ sudo apachectl restart

Activer la réécriture d’url mod_rewrite

Certains logiciel ont besoin de ce module d’Apache pour marcher, WordPress par exemple, ou encore Symfony ou Laravel. Le module peut ne pas être chargé par défaut, dans le fichier php.ini, chercher la ligne contenant mod_rewrite et décommenter la ligne, redémarrer Apache.

Retour en haut