Le guide des modes de fonctionnement Apache et PHP

Temps de lecture: 2 minutes

J’ai essayé de compiler les informations pour voir plus clair les termes suivants : MPM, prefork, FastCGI, CGI, php-fpm… c’est un joyeux bordel, c’est moins drôle quand vous devez configurer from scratch un serveur web.  Bien sûr il existe des  panels qui vous font ça automatiquement (Virtualmin), mais un jour vous rencontrerez une situation où vous remercierez le jour où vous vous êtes intéressé à ce sujet, on ne sait jamais.

Vous verrez que tous les modules Apache travaillent de concert, par exemple le module mod_authz_host travaille avec mod_authz_user lorsque l’accès à une section du répertoire web est sujet à l’authentification d’un utilisateur, ou lorsque Require nécessite une variable d’environnement, mod_authz_host travaillera avec le module mod_setenvif.

C’est la philosophie de Linux qui est la modularité des composants.

Dans cette page je détaille les directives qui sont inclues dans le core d’Apache, càd les plus fondamentales.

Directive AllowOverride

Override en anglais veut dire surcharger. La configuration d’un serveur web (virtual host) se fait théoriquement dans le fichier httpd.conf (et les fichiers inclus dans httpd.conf). Pour que les modifications soient prises en compte, il faut redémarrer le serveur. Il existe une autre façon d’applique la configuration qui ne nécessite pas de redémarrage de serveur, c’est le fichier .htaccess, qui se met dans le répertoire web.

On y a recours lorsqu’il s’agit par exemple d’hébergement mutualisé, où l’administrateur du site ne peut pas agir au niveau d’Apache (ce qui est facile à concevoir), pour qu’une règle fonctionne dans .htaccess, il faut le déclarer explicitement dans le fichier httpd.conf, avec la directive AllowOverride.

La directive Options

Elle donne des consignes au sein d’un répertoire physique du répertoire web. Par exemple, désigner quelle est la page index par défaut (Index), le traitement des liens symboliques FollowSymLink, et la plus obscure négociation de contenu avec Multiviews (en gros, si une page existe en plusieurs langues, le serveur va déterminer la version à servir), qui en général ne nous concerne pas beaucoup.

La directive Require

Elle s’occupe de définir les contrôles d’accès au répertoire, comme par exemple autoriser une IP, ou une plage d’IP, un réseau local ou tout le monde.

sources:

fastCGI FPM Apache

http://www.lolart.net/blog/ez-publish/php-fastcgi-fpm-et-apache

Debian Fasct CGI + php-fpm fastcgi process management

https://www.skyminds.net/serveur-dedie-passage-au-mod-fastcgi-et-php-fpm-avec-apache-mpm-worker/

Centos FastCGI

https ://tecadmin.net/setup-httpd-with-fastcgi-and-php-on-centos-redhat/