Pourquoi Nginx, PHP et fastCGI sont-ils si populaires ?
Nginx est le serveur Web http le plus apprécié de la communauté DevOps. Et les développeurs adorent le langage de programmation PHP car il leur permet de créer et de déployer rapidement des sites Web interactifs.
En tant que tel, il n’est pas étonnant que tant d’administrateurs système aient besoin de configurer Nginx, PHP et PHP-FPM sur les serveurs Linux et Windows.
Ce tutoriel rapide vous montre comment configurer PHP et Nginx sur Ubuntu Linux avec le gestionnaire de processus fastCGI (PHP-FPM) configuré comme moteur PHP de Nginx.
Comment configurer Nginx, PHP et PHP-FPM
Pour installer et configurer fastCGI (FPM), PHP et Nginx sur Ubuntu Linux, suivez ces étapes :
- Effectuez une mise à jour apt-get pour garantir l’accès aux derniers packages.
- Installez Nginx sur Ubuntu.
- Installez le package php-fpm pour Nginx.
- Modifier le serveur défaut fichier de configuration pour prendre en charge PHP dans Nginx.
- Redémarrez le serveur Nginx configuré en PHP.
- Ajouter un fichier PHP à Nginx html annuaire.
- Testez la configuration PHP, Nginx et PHP-FPM.
Téléchargez les derniers packages Nginx et PHP
Chaque installation de logiciel dans Ubuntu devrait commencer par un rapide apt-get update
et éventuellement un apt-get upgrade
commande.
sudo apt-get update -y Reading package lists... Done sudo apt-get upgrade -y Calculating upgrade... Done
Installer Nginx sur Ubuntu
Pour installer PHP sur Nginx, vous devez d’abord installer Nginx, ce que vous pouvez réaliser via un simple apt-get install
commande:
sudo apt-get install nginx -y The following Nginx packages will be installed: libnginx-mod-http-geoip2 nginx-common nginx-core Setting up nginx 1.18.0-6 ubuntu... Done
Vérifier le serveur Nginx en cours d’exécution
Pour vérifier la réussite de l’installation et de la configuration de Nginx sur Ubuntu, interrogez le statut du serveur HTTP :
sudo systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled;) Active: active (Nginx running)
Vous pouvez vérifier visuellement que la page de destination Nginx s’affiche sur http://localhost:80 d’un navigateur Web.
Installer PHP pour Nginx avec PHP-FPM
Pour installer PHP pour Nginx, utilisez la bibliothèque PHP-FPM. Vous pouvez installer le support PHP-FPM avec un autre apt-get install
commande:
sudo apt-get install php8.1-fpm -y
Dans ce cas, nous avons installé la version 8.1 des packages PHP et PHP-FPM.
Une erreur courante consiste à installer le package PHP, et non PHP-FPM. Le problème avec cette approche est que contrairement à PHP-FPM, le package PHP installe le serveur HTTP Apache et son processus httpd, ce qui est en conflit avec Nginx.
Pourquoi une installation PHP de base nécessite-t-elle Apache ?
PHP nécessite l’une des trois dépendances pour exister sur une machine :
- libapache2-mod-php
- php-fpm
- php-cgi
Une simple installation PHP utilise le module libapache2-mod-php par défaut, qui nécessite l’installation de la suite logicielle complète du serveur HTTP Apache. Pour éviter cela, installez le module php-cgi ou php-fpm pour Nginx.
Vérifier si PHP-FPM est en cours d’exécution
Une fois la configuration de PHP-FPM terminée, vérifiez s’il est en cours d’exécution :
sudo systemctl status php8.1-fpm ● php8.1-fpm.service - PHP 8.1 FastCGI Process Manager FPM for Ubuntu Loaded: loaded (/lib/systemd/system/php8.1-fpm.service) Active: active (php-fpm running)
Ajouter le support PHP à Nginx
Avec Nginx et PHP-FPM installés, vous devez modifier le fichier de configuration Nginx par défaut. Cela permet au gestionnaire de processus PHP FastCGI de gérer les requêtes qui ont une extension .php.
Le fichier Nginx par défaut peut être ouvert avec n’importe quel éditeur de texte. Cette commande l’ouvrira avec Nano :
sudo nano /etc/nginx/sites-available/default
Apportez les modifications suivantes à la configuration Nginx pour prendre en charge PHP et PHP-FPM sur le serveur :
- Ajoutez index.php à la liste d’index.
- Décommentez les scripts PHP dans le bloc d’entrée FastCGI.
- Décommentez la ligne pour inclure snippets/fastcgi-php.conf.
- Décommentez la ligne pour activer le fastcgi_pass et le php8.1-fpm. chaussette
- Décommentez la section pour refuser tout accès aux fichiers Apache .htaccess.

Pour configurer PHP, Nginx et FTP (fastCGI), vous devez mettre à jour le fichier de configuration Nginx.
Activer PHP dans le fichier de configuration de Nginx
La section serveur du fichier de configuration Nginx, PHP et PHP-FPM ressemblera à ceci une fois terminée. Les modifications sont mises en évidence en gras :
server { # Example PHP Nginx FPM config file listen 80 default_server; listen [::]:80 default_server; root /var/www/html; # Add index.php to setup Nginx, PHP & PHP-FPM config index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } # pass PHP scripts on Nginx to FastCGI (PHP-FPM) server location ~ .php$ { include snippets/fastcgi-php.conf; # Nginx php-fpm sock config: fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Nginx php-cgi config : # Nginx PHP fastcgi_pass 127.0.0.1:9000; } # deny access to Apache .htaccess on Nginx with PHP, # if Apache and Nginx document roots concur location ~ /.ht { deny all; } } # End of PHP FPM Nginx config example
Comment valider un fichier de configuration Nginx
La commande suivante valide le fichier de configuration Nginx mis à jour pour s’assurer que les modifications ne créent pas d’erreurs de syntaxe :
sudo nginx -t nginx php config: the configuration file /etc/nginx/nginx.conf syntax is ok nginx php-fpm config: configuration file /etc/nginx/nginx.conf test is successful
Pour activer la configuration Nginx PHP fastCGI, redémarrez le serveur :
sudo systemctl restart nginx
Créer une page PHP dans Nginx
Après le redémarrage, PHP est entièrement activé sur Nginx. Pour le prouver, créez un fichier PHP dans Nginx /var/www/html dossier et testez pour vous assurer que la page s’affiche correctement sur le serveur.
Vous devrez peut-être modifier les autorisations sur le dossier avec un CHMOD
commande afin d’y créer un fichier :
sudo chmod -R 777 /var/www/html
Ajoutez ensuite un nouveau fichier PHP au répertoire d’hébergement Web de Nginx. La façon la plus simple de le faire est d’effectuer un rapide echo
commande:
echo "" >> /var/www/html/info.php
Cela crée le fichier PHP le plus basique en dehors d’un exemple “Hello World” que vous pourriez créer. Si vous n’aimez pas le echo
commande, utilisez un éditeur pour créer un fichier nommé info.php dans le /var/www/html dossier avec le contenu suivant :
phpinfo();
?>
Testez l’intégration Nginx, PHP
Avec la configuration de Nginx, PHP et le module PHP-FPM terminés, et un nouveau fichier nommé info.php ajouté au serveur Web, ouvrez simplement un navigateur sur http://localhost/info.php pour tester la configuration. La page d’info PHP, attestant du fait que l’installation sur Nginx de PHP 8.1, apparaîtra.

Lorsque PHP, FPM et Nginx seront entièrement configurés, le serveur pourra rendre les pages PHP.
Commandes pour configurer PHP et Nginx dans Ubuntu
Passons rapidement en revue ce tutoriel PHP et Nginx. Voici toutes les commandes que nous avons utilisées pour activer le gestionnaire de processus fastCGI pour PHP dans Nginx :
-
sudo apt-get update -y
-
sudo apt-get upgrade -y
-
sudo apt-get install nginx -y
-
sudo systemctl status nginx
-
sudo apt-get install php8.1-fpm -y
-
sudo systemctl status php8.1-fpm
-
sudo nano /etc/nginx/sites-available/default
-
sudo nginx -t
-
sudo systemctl restart nginx
-
sudo chmod -R 777 /var/www/html
-
echo "" >> /var/www/html/info.php
Et c’est aussi simple que cela d’installer et de configurer le support fastCGI (FTP), Nginx et PHP sur votre serveur Web.