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.
Créez le fichier /var/www/html/index.php
contenant le code suivant :
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.
Nginx ne peut pas interpréter directement les fichiers PHP comme le fait Apache.
On utilisera PHP-FPM
2 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.