GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer Nginx pour travailler 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. C'est un serveur Web stable reconnu pour ses performances impressionnantes et sa faible consommation de ressources.

PHP s'exécute en tant que 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 ne traitera que les requêtes HTTP, tandis que PHP-FPM interprète le code PHP.

1. Installation de Nginx

Ubuntu / Debian

Étant donné que Nginx est disponible dans les dépôts par défaut de Debian et d'Ubuntu, il est possible de l'installer à partir de ces dépôts à l'aide du système de conditionnement 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 open source et gratuit basé sur la communauté 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

Fédora

Nginx est disponible sur les dépôts Fedora par défaut et peut être installé directement en utilisant le dnf gestionnaire de paquets.

sudo dnf install nginx

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 dans les serveurs CentOS est obsolète. Pour cette raison, nous devrons installer un référentiel de packages tiers pour obtenir PHP 7.

CentOS 7

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, en activant tout nouveau VirtualHost.

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

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

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm;
        server_name example.com;
 
        location / {
            try_files $uri $uri/ =404;
        }
 
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass 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 le fastcgi_pass directive est correcte.

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 de serveur affiché 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 à partir de /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 à partir d'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

Toutes nos 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 tutoriel étape par étape pour acquérir un certificat SSL Let's Encrypt gratuit pour votre serveur.


Linux
  1. Comment configurer l'origine Cloudflare SSL avec Nginx

  2. Comment configurer des serveurs de journalisation distants avec rsyslog ?

  3. Comment activer Nginx avec PHP-FPM sur Plesk

  4. Comment installer PHP 7.4 avec Nginx sur Ubuntu 20.04

  5. Comment exécuter plusieurs versions de PHP avec Nginx sur Ubuntu ?

Comment configurer Nginx avec SSL

Comment installer Nginx avec PHP-FPM sur Debian 11

Comment configurer PHP-FPM avec NGINX

Comment configurer l'équilibrage de charge avec NGINX sur Jelastic Cloud

Comment installer et configurer NGINX et PHP sur Jelastic Cloud

Comment installer et configurer Memcached avec Apache et PHP