PHP

Luc Didry. Licence CC-BY-SA
I have no desire to survive this.
Le docteur guerrier

Télécharger le PDF

PHP1 est un langage extrêmement répandu. Voici comment servir des fichiers PHP avec Apache et Nginx.

Ceci est le strict minimum, certaines applications nécessitent des configurations plus complexes.

1 Fichier d’exemple

Créez le fichier /var/www/html/index.php contenant le code suivant :

2 Apache

Installez le module PHP (il s’activera tout seul à l’installation) :

apt install libapache2-mod-php

Modifiez la directive DirectoryIndex de votre hôte virtuel :

DirectoryIndex index.php index.html

Allez sur votre hôte virtuel : vous devriez avoir une page d’information sur la version de PHP installée sur votre machine et sur ses modules.

3 Nginx

Nginx ne peut pas interpréter directement les fichiers PHP comme le fait Apache.

On utilisera PHP-FPM2 via le protocole FastCGI (notez qu’on peut utiliser PHP-FPM avec Apache aussi).

Installez-le :

apt install php-fpm

Modifiez la configuration de votre hôte virtuel :

index index.php index.html;
location ~ \.php$ {
   include snippets/fastcgi-php.conf;

   # With php-fpm (or other unix sockets):
   fastcgi_pass unix:/run/php/php7.4-fpm.sock;
   # With php-cgi (or other tcp sockets):
   #fastcgi_pass 127.0.0.1:9000;
}

On notera que Nginx peut communiquer avec PHP-FPM via par un socket unix ou un socket réseau.

Une socket unix est plus rapide et permet de définir des permissions d’utilisation (de la même manière qu’un fichier normal : user, group, other) mais une socket réseau peut encaisser plus de connexions en même temps. À vous de voir selon les cas quel est le type de socket à privilégier.

NB : faites attention, l’adresse du socket unix change selon la version de Debian : /run/php/php7.4-fpm.sock pour Bullseye et /var/run/php/php7.3-fpm.sock pour Buster, par exemple.

Rechargez Nginx :

nginx -t && nginx -s reload

Allez sur votre hôte virtuel : vous devriez avoir une page d’information sur la version de PHP installée sur votre machine et sur ses modules.


  1.  https://www.php.net/

  2.  https://fr.wikipedia.org/wiki/PHP-FPM