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

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *