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.