Configurer Apache/PHP sous OS X 10.11

Ce document explique comment configurer Apache + PHP sous OS X El Capitan 10.11.

Référence : http://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-osx-10-11-el-capitan/

Sous OS X, un apache est déjà présent qui peut être configuré avec PHP comme on peut le constater :

woody$ php -v
PHP 5.5.27 (cli) (built: Aug 22 2015 18:20:44)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

woody$ whereis apachectl
/usr/sbin/apachectl

woody$ apachectl -v
Server version: Apache/2.4.16 (Unix)
Server built:   Aug 22 2015 16:51:57

Où se trouve le fichier de configuration d’Apache sous OS X El Capitan?

/private/etc/apache2/httpd.conf

Comment vérifier la syntaxe du fichier httpd.conf ?

apachectl configtest # pour vérifier la syntaxe de httpd.conf

Procédure pour ajouter un répertoire utilisateur pour héberger des sites

Par défaut le serveur apache d’OS X El Capitan prévoit un DocumentRoot système pointant sur /Library/WebServer/Documents.

Il convient de créer un répertoire pour héberber les pages web pour l’utilisateur et non pour tout le système afin de compartimenter les choses. Nous prendrons l’exemple de l’utilisateur woody pour les commandes suivantes.

woody$ sudo su - # on passe en root par facilité en dev

Création d’un fichier .conf

root$ cd /private/etc/apache2/users/

# on va créer un fichier .conf pour l'utilisateur voulu (ici woody) en utilisant un bloc Here documents
root$ cat > woody.conf << EOF
<Directory "/Users/woody/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
EOF

# vérifiez que le le fichier a les droits 644 et le propriétaire root
root# ls woody.conf
-rw-r--r--   1 root  wheel  131 Nov 30 15:30 woody.conf

Modification du fichier httpd.conf

# modification du fichier httpd.conf
root# vim /private/etc/apache2/httpd.conf

# dans httpd.conf, assurez vous que les lignes suivantes sont décommentées
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so

Modification du fichier extra

root# vim /etc/apache2/extra/httpd-userdir.conf
# décommentez la ligne suivante
Include /private/etc/apache2/users/*.conf

Test

# on crée un fichier de diagnostic sur le répertoire local de l'utilisateur
woody$ cat > /Users/woody/Sites/phpinfo.php << EOF
<? phpinfo();
EOF

# on relance apache
root# sudo apachectl restart

Le site est accessible avec un navigateur pointant sur : http://localhost/~woody/phpinfo.php

En cas de problème de permission

Référence : http://learn.getgrav.org/troubleshooting/permissions

Par défaut sous OS X, le processus Apache est lancé avec le compte _www dans le fichier httpd.conf.

Cela pose problème pour Grav car il a besoin d’écrire des fichiers (par exemple dans le répertoire cache).

Il y a plusieurs manières de régler ce problème. Le plus simple est de faire lancer le processus par l’utilisateur.

Modification de /private/etc/apache2/httpd.conf :

User woody
Group staff
Written on November 30, 2015