Installation
On installe donc Apache2 avec le module qui va bien, et PHP-FPM :
apt install apache2-mpm-event php7.0-fpm
Pour un Apache qui était déjà installé, le mode prefork doit être désactivé et mod_php désinstallé, pour ensuite activer le mode event
a2dismod mpm_prefork php7
a2enmod mpm_event
apt purge libapache2-mod-php7
systemctl restart apache2
Activer PHP7.0-FPM avec mod_proxy_fcgi
Pour le moment PHP ne fonctionne pas sur notre serveur, et pour cause, il n’a pas été activé et configuré.
On peut le vérifier en créant un fichier /var/www/html/info.php avec pour contenu
<?php phpinfo(); ?>
Si on essaie d’y accéder (http://srv.example.net/info.php
) on se retrouve avec une belle page blanche et des erreurs dans les logs (/var/log/apache2/error.log
).
On va donc activer le module suivant :
proxy_fcgi
: qui va nous permettre de rediriger les requêtes PHP vers FastCGI
a2enmod proxy_fcgi
Ensuite on créer le fichier /etc/apache2/conf-available/php7.0-fpm.conf
:
# Redirect to local php-fpm if mod_php is not available <IfModule !mod_php5.c> <IfModule proxy_fcgi_module> # Enable http authorization headers <IfModule setenvif_module> SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 </IfModule> <FilesMatch ".+\.ph(p[3457]?|t|tml)$"> SetHandler "proxy:unix:/run/php7.0-fpm.sock|fcgi://localhost" </FilesMatch> <FilesMatch ".+\.phps$"> # Deny access to raw php sources by default # To re-enable it's recommended to enable access to the files # only in specific virtual host or directory Require all denied </FilesMatch> # Deny access to files without filename (e.g. '.php') <FilesMatch "^\.ph(p[3457]?|t|tml|ps)$"> Require all denied </FilesMatch> </IfModule> </IfModule>
Si on veut que PHP soit fonctionnel pour tous les sites de notre serveur, on active globalement cette configuration et on redémarre le service Apache2 :
a2enconf php5-fpm systemctl restart apache2
Laisser un commentaire