Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!

Utilisez le code à la caisse :

Skills
18.12.2024
No categories

Gestionnaire de processus FastCGI en PHP – PHP-FPM

Optimisez la performance de PHP avec PHP-FPM sur votre SDV AlexHost

Pourquoi utiliser PHP-FPM sur AlexHost ? PHP-FPM (FastCGI Process Manager) accélère les sites web basés sur PHP comme WordPress ou Laravel, offrant des temps de réponse plus rapides et une utilisation efficace des ressources. Le VPS d’AlexHost, avec un stockage NVMe, un accès racine complet et une protection DDoS, est la plateforme parfaite pour exécuter PHP-FPM, garantissant que vos applications gèrent un trafic élevé avec facilité. Ce guide couvre ce qu’est PHP-FPM, pourquoi il change la donne, et comment le configurer sur votre VPS AlexHost.

Qu’est-ce que PHP-FPM ?

PHP-FPM, ou PHP FastCGI Process Manager, est une implémentation de FastCGI pour les scripts PHP. FastCGI est un protocole utilisé pour améliorer la performance des serveurs web en traitant les requêtes plus efficacement que le standard CGI (Common Gateway Interface). Alors que CGI crée un nouveau processus pour chaque requête (ce qui entraîne une consommation élevée de ressources), FastCGI maintient un pool de processus travailleurs prêts à traiter plusieurs requêtes, réduisant ainsi la charge de travail. PHP-FPM ajoute une couche de gestion de processus au-dessus de FastCGI, permettant des fonctionnalités telles que le pool de processus, la création de travailleurs à la demande, l’arrêt progressif et la capacité à gérer facilement les environnements à fort trafic. C’est maintenant le gestionnaire PHP standard de facto pour de nombreux serveurs web modernes, y compris NGINX et Apache

Pourquoi utiliser PHP-FPM ?

  1. Amélioration des performances : PHP-FPM peut gérer plus de requêtes simultanées avec moins de ressources, réduisant ainsi la charge du serveur et accélérant les temps de réponse. Ceci est particulièrement bénéfique pour les sites web à fort trafic ou les applications qui connaissent des pics de trafic soudains.
  2. Gestion des processus : PHP-FPM permet une gestion fine des processus, vous donnant le contrôle sur la façon dont PHP traite les requêtes. Il utilise un pool de travailleurs qui peut être ajusté en fonction de la charge de travail attendue, garantissant ainsi une utilisation efficace des ressources du serveur.
  3. Meilleure utilisation des ressources : Puisque PHP-FPM met en commun des processus, il peut répondre à plusieurs requêtes en utilisant les mêmes travailleurs, minimisant ainsi le besoin de créer et de terminer des processus en permanence. Cela améliore l’utilisation de la mémoire et l’efficacité du processeur.
  4. Dégradation progressive : Lorsqu’il est configuré correctement, PHP-FPM peut se dégrader de manière gracieuse en réduisant le nombre de processus actifs si le serveur devient surchargé, évitant ainsi un crash complet.
  5. Fonctionnalités avancées : PHP-FPM inclut des fonctionnalités avancées telles que le slow-log pour le débogage, le lancement adaptatif de processus, et les rapports d’état, qui fournissent des informations sur les performances et la santé de vos applications PHP.

Caractéristiques principales de PHP-FPM

  • Pools de processus : PHP-FPM vous permet de définir plusieurs pools de processus de travail PHP. Chaque pool peut être configuré avec des paramètres différents, ce qui vous permet d’exécuter différentes applications PHP avec des exigences de trafic variées sur le même serveur.
  • Création adaptative de processus : PHP-FPM peut automatiquement adapter le nombre de processus de travail en fonction des niveaux de trafic. Il démarre avec un nombre minimum de travailleurs et peut augmenter la taille du pool si nécessaire, sans gaspiller de ressources pendant les périodes de faible trafic.
  • Journal lent : La fonction de journal lent de PHP-FPM enregistre les requêtes qui dépassent un temps d’exécution prédéfini. Elle aide les développeurs à identifier et à résoudre les goulets d’étranglement dans leur code PHP.
  • Page d’état : PHP-FPM fournit une page d’état intégrée qui donne des informations en temps réel sur l’état du pool, les travailleurs actifs, les travailleurs inactifs et d’autres mesures qui peuvent être utilisées pour surveiller les performances.
  • Arrêt en douceur : PHP-FPM peut terminer les processus de manière gracieuse, permettant aux requêtes en cours de se terminer avant de s’arrêter. Cela permet d’éviter l’arrêt brutal des scripts en cours d’exécution et d’assurer une meilleure expérience utilisateur.

Comment fonctionne PHP-FPM

PHP-FPM fonctionne comme un serveur FastCGI autonome qui est intégré à un serveur web, tel que NGINX ou Apache, pour servir les scripts PHP. Lorsqu’une requête arrive, le serveur web transmet la requête PHP au service PHP-FPM, qui gère un pool de processus de travail pour exécuter le code PHP et renvoyer le résultat au serveur web pour livraison au client. Voici un flux simplifié de la façon dont PHP-FPM gère une requête

  1. Demande du client : Un utilisateur demande une page web contenant du code PHP.
  2. Le serveur web reçoit la requête : Le serveur web (NGINX ou Apache) reçoit la requête et la transmet au service PHP-FPM en utilisant le protocole FastCGI.
  3. Le processeur PHP-FPM traite la requête : L’un des processus du pool PHP-FPM traite la requête, exécute le script PHP et renvoie le résultat.
  4. Réponse renvoyée : Le serveur web reçoit la réponse et la renvoie au client sous la forme du code HTML final.

Mise en place et configuration de PHP-FPM

Etape 1 : Installer PHP-FPM

Pour la plupart des distributions Linux, PHP-FPM peut être installé via les gestionnaires de paquets. Voici les commandes pour les systèmes les plus courants :

# For Debian/Ubuntu
sudo apt update
sudo apt install php-fpm
# For CentOS/RHEL
sudo yum install php-fpm
Une fois installé, vous pouvez démarrer le service PHP-FPM

sudo systemctl start php-fpm
#

Etape 2 : Configurer les pools PHP-FPM

Le fichier de configuration principal de PHP-FPM est généralement situé dans /etc/php/7.x/fpm/pool.d/ ou /etc/php-fpm.d/ en fonction de votre distribution et de la version de PHP. Chaque pool est défini dans son propre fichier, généralement nommé d’après le site web ou l’application qu’il dessert. Voici un exemple de configuration pour un pool :

[www]
user = www-data
group = www-data
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
#
  • pm = dynamique : Le gestionnaire de processus peut ajuster dynamiquement le nombre de processus travailleurs en fonction de la demande.
  • pm.max_children : Nombre maximal de processus de travailleur pouvant être créés pour traiter les demandes.
  • pm.start_servers : Le nombre de processus travailleurs qui démarrent lorsque PHP-FPM est lancé.
  • pm.min_spare_servers et pm.max_spare_servers : Définissent le nombre minimum et maximum de travailleurs inactifs, permettant à PHP-FPM d’adapter les ressources en fonction de la charge.
  • pm.max_requests : Le nombre maximum de requêtes qu’un travailleur peut traiter avant d’être interrompu et remplacé. Cela permet d’éviter les fuites de mémoire dans les scripts de longue durée.

Étape 3 : Configuration du serveur Web pour l’utilisation de PHP-FPM

Pour NGINX :

Dans votre fichier de configuration NGINX (par exemple, /etc/nginx/sites-available/example.com), configurez PHP-FPM comme gestionnaire PHP :

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

Pour Apache :

Pour activer PHP-FPM dans Apache, assurez-vous que le module mod_proxy_fcgi est activé

sudo a2enmod proxy_fcgi setenvif
#

Mettez ensuite à jour la configuration de votre hôte virtuel Apache

<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
##

Etape 4 : Tester la configuration

Après avoir configuré PHP-FPM et votre serveur web, redémarrez les services pour appliquer les changements :

# For NGINX
sudo systemctl restart nginx
##ATP_NOTR_9_CODE_TAG_NOTR_ATP### Pour vérifier que PHP-FPM fonctionne, créez un fichier phpinfo.php dans le répertoire racine de votre site web : ##ATP_NOTR_10_CODE_TAG_NOTR_ATP### Visitez le fichier dans votre navigateur (par exemple, http://example.com/phpinfo.php) pour voir si PHP-FPM est listé comme gestionnaire

Conclusion : Optimiser PHP avec AlexHost et PHP-FPM

PHP-FPM transforme vos applications PHP en machines de haute performance, et le VPS d’AlexHost alimenté par NVMe s’assure qu’elles fonctionnent sans problème sous de lourdes charges. Installez PHP-FPM, configurez des pools et intégrez NGINX ou Apache pour des sites web rapides et sécurisés. Surveillez avec des pages d’état, déboguez avec des journaux lents, et sauvegardez les configurations pour plus de sécurité. Avec l’accès root et le support d’AlexHost, vos projets PHP sont inarrêtables – commencez à coder et évoluez sans effort !

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!

Utilisez le code à la caisse :

Skills

Похожие записи не найдены.