Recherche de site Web

Comment configurer Nginx pour fonctionner avec PHP via PHP-FPM


Ce didacticiel étape par étape vous montrera comment installer et configurer Nginx pour exécuter PHP sur votre serveur à l'aide de PHP-FPM.

Nginx + PHP est l'un des groupes de logiciels les plus populaires que vous pouvez utiliser pour créer votre site Web. Ce didacticiel étape par étape vous montrera comment installer et configurer Nginx pour exécuter PHP sur votre serveur à l'aide de PHP-FPM.

Nginx est la combinaison idéale avec PHP-FPM. Il s’agit d’un serveur Web stable reconnu pour ses performances impressionnantes et sa faible consommation de ressources.

PHP s'exécute comme un service isolé lorsque vous utilisez PHP-FPM. L'utilisation de cette version de PHP comme interpréteur de langage signifie que les requêtes seront traitées via un socket UNIX. Le serveur Nginx gérera uniquement les requêtes HTTP, tandis que PHP-FPM interprétera le code PHP.

1. Installation de Nginx

Ubuntu/Debian

Étant donné que Nginx est disponible dans les référentiels par défaut de Debian et Ubuntu, il est possible de l'installer à partir de ces référentiels à l'aide du système de packaging apt.

sudo apt install nginx

CentOS/AlmaLinux/Rocky Linux

Pour obtenir la dernière version de Nginx, les utilisateurs de CentOS, AlmaLinux ou Rocky Linux doivent d'abord installer le référentiel EPEL.

EPEL (Extra Packages for Enterprise Linux) est un projet de référentiel communautaire open source et gratuit de l'équipe Fedora qui fournit des packages logiciels complémentaires de haute qualité pour les distributions Linux basées sur RHEL.

sudo yum install epel-release

Ensuite, vous pouvez installer le serveur Nginx.

sudo yum install nginx

Feutre

Nginx est disponible sur les référentiels Fedora par défaut et peut être installé directement à l'aide du gestionnaire de packages dnf.

sudo dnf install nginx

Connexe : Comment installer le serveur Web Nginx sur Linux

2. Installation de PHP-FPM

Ubuntu/Debian

Pour installer PHP sur Ubuntu ou Debian, exécutez simplement la commande suivante :

sudo apt install php-fpm

CentOS

La version PHP disponible par défaut au sein des serveurs CentOS est obsolète. Pour cette raison, nous devrons installer un référentiel de packages tiers pour obtenir PHP 7.

CentOS7

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

CentOS 8

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

3. Configuration de NGINX pour exécuter PHP à l'aide de PHP-FPM

Une fois Nginx et PHP installés, nous pouvons configurer Nginx pour envoyer des requêtes PHP à PHP-FPM.

Nous devrons créer un fichier de configuration de bloc de serveur Nginx pour exécuter PHP avec FPM. Après cela, vous pouvez créer un nouveau VirtualHost selon vos besoins, activant ainsi tout nouveau VirtualHost.

sudo vim /etc/nginx/sites-available/example.com

Remplacez example.com par le domaine ou l'adresse IP de votre site, et la directive root par le répertoire racine de votre site.

<strong>server</strong> {
<strong>        listen</strong> 80;
<strong>        root</strong> /var/www/html;
<strong>        index</strong> index.php index.html index.htm;
<strong>        server_name</strong> example.com;
 
<strong>        location</strong> / {
<strong>            try_files</strong> $uri $uri/ =404;
        }
 
<strong>        location</strong> ~ \.php$ {
<strong>            include</strong> snippets/fastcgi-php.conf;
<strong>            fastcgi_pass</strong> unix:/var/run/php/php7.4-fpm.sock;
        }
}

Enregistrez vos modifications dans le fichier de configuration et créez un lien vers le répertoire activé par le site.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

Assurez-vous que le nom du fichier socket PHP (dans notre cas php7.4-fpm.sock) spécifié dans la directive fastcgi_pass est correct.

ls -l /var/run/php/
total 4
-rw-r--r-- 1 root     root      5 Dec  1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data  0 Dec  1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root     root     30 Dec  1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock

Si le nom est différent de php7.4-fpm.sock, remplacez-le simplement dans le bloc serveur indiqué ci-dessus par celui actuel de votre serveur.

Redémarrez ensuite le service Nginx pour recharger les modifications.

sudo systemctl restart nginx.service

4. Test de la configuration

Créez un fichier PHP de test pour vérifier que PHP-FPM fonctionne et est intégré à Nginx. Dans le bloc serveur ci-dessus, notre site est servi depuis /var/www/html, nous allons donc y créer un fichier de test :

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Enfin, accédez à info.php depuis un navigateur Web, en utilisant le domaine de votre site ou l'adresse IP du serveur. Vous devriez voir la page de configuration PHP :

Conclusion

Félicitations! Vous avez configuré Nginx pour gérer les requêtes PHP via PHP-FPM.

Il y a quelques prochaines étapes que vous pourriez suivre à partir d’ici. Par exemple, vous devez vous assurer que les connexions à votre serveur sont sécurisées. Mais comment faire ?

Suivez notre didacticiel étape par étape pour acquérir un certificat SSL Let's Encrypt gratuit pour votre serveur.

Articles connexes: