Maison >développement back-end >tutoriel php >La clé pour améliorer les performances d'un site Web : guide pratique d'optimisation PHP-FPM

La clé pour améliorer les performances d'un site Web : guide pratique d'optimisation PHP-FPM

王林
王林original
2023-10-05 09:28:411076parcourir

La clé pour améliorer les performances dun site Web : guide pratique doptimisation PHP-FPM

La clé pour améliorer les performances d'un site Web : guide pratique d'optimisation PHP-FPM

Avec le développement rapide d'Internet, les sites Web jouent un rôle de plus en plus important. Pour les opérateurs de sites Web, l’amélioration des performances des sites Web est cruciale, non seulement pour améliorer l’expérience utilisateur, mais également pour améliorer le classement des moteurs de recherche. PHP-FPM (FastCGI Process Manager), en tant que gestionnaire de processus pour l'exécution de PHP, joue un rôle essentiel dans l'amélioration des performances du site Web. Cet article vous fournira un guide pratique d'optimisation PHP-FPM, comprenant des exemples de code spécifiques.

1. Installez et configurez PHP-FPM

Tout d'abord, vous devez vous assurer que PHP a été installé sur le serveur. Vous pouvez le vérifier avec la commande suivante :

php -v

Si PHP n'est pas installé, veuillez utiliser la commande suivante pour l'installer (en prenant CentOS comme exemple) :

yum install php

Une fois l'installation terminée, vous devez modifier le php. ini pour activer le support PHP-FPM. Recherchez les deux lignes de code suivantes et modifiez-les :

cgi.fix_pathinfo=0
; FastCGI dynamic process spawning
; Set to 0 if you're not having permission errors when running PHP as a CGI.
; http://php.net/cgi.fix-pathinfo

Modifiez la première ligne de code en :

cgi.fix_pathinfo=1

Modifiez la deuxième ligne de code en :

;cgi.fix_pathinfo=0

Après avoir enregistré les modifications, redémarrez le service PHP-FPM pour effectuer le modifications effectives.

service php-fpm restart

2. Ajustez les paramètres de configuration de PHP-FPM

Avant d'optimiser PHP-FPM, nous devons comprendre certains paramètres importants de PHP-FPM :

  • pm.max_children : Spécifiez également le nombre maximum de processus. le nombre maximum de processus PHP que PHP-FPM peut créer. Lorsque cette valeur est dépassée, les nouvelles connexions seront mises en file d'attente.
  • pm.start_servers : Spécifiez le nombre de processus PHP créés au démarrage.
  • pm.min_spare_servers : spécifiez le nombre minimum de processus inactifs que PHP-FPM doit maintenir.
  • pm.max_spare_servers : spécifiez le nombre maximum de processus inactifs que PHP-FPM doit maintenir.
  • pm.max_requests : Spécifie le nombre maximum de requêtes traitées par chaque processus PHP. Après avoir dépassé cette valeur, le processus sera redémarré.

Selon la configuration du serveur et le trafic du site web, ces paramètres peuvent être ajustés de manière appropriée pour améliorer les performances de PHP-FPM. Par exemple, si la configuration du serveur est faible, vous pouvez définir pm.max_children sur une valeur plus petite, telle que 20. Si le trafic du site Web n'est pas élevé, vous pouvez définir pm.min_spare_servers et pm.max_spare_servers sur des valeurs plus petites, telles que 5.

Vous pouvez modifier ces paramètres en éditant le fichier php-fpm.conf :

vi /etc/php-fpm.conf

Retrouvez les lignes de code suivantes à modifier :

pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500

Après avoir enregistré les modifications, redémarrez le service PHP-FPM pour que les modifications prennent effet.

service php-fpm restart

3. Activer l'extension OPcache de PHP

OPcache est un accélérateur introduit après la version 5.5 de PHP. Il peut mettre en cache les scripts PHP compilés en mémoire pour réduire le temps de compilation répétée. L'extension OPcache peut être activée en suivant ces étapes :

  1. Ouvrez le fichier php.ini :
vi /etc/php.ini
  1. Recherchez le code suivant :
;zend_extension = <path_to_opcache.so>
  1. Supprimez le ";" précédent et remplacez "
  2. Après avoir enregistré les modifications, redémarrez le service PHP-FPM pour que OPcache prenne effet.
service php-fpm restart

4. Activez la fonction Slow Log de PHP-FPM

La fonction Slow Log de PHP-FPM peut enregistrer les requêtes dont le temps d'exécution dépasse le seuil spécifié dans un fichier journal pour une analyse et une optimisation ultérieures. Vous pouvez activer la fonction Slow Log en suivant les étapes suivantes :

  1. Ouvrez le fichier php-fpm.conf :
vi /etc/php-fpm.conf
  1. Trouvez le code suivant :
;slowlog = /var/log/php-fpm/www-slow.log
;request_slowlog_timeout = 0
  1. Supprimez le ";" précédent et modifiez "request_slowlog_timeout " au seuil requis, en secondes. Par exemple, le changer en 1 signifie que les requêtes qui prennent plus d'une seconde à s'exécuter seront enregistrées.
  2. Après avoir enregistré les modifications, redémarrez le service PHP-FPM pour que la fonction Slow Log prenne effet.
service php-fpm restart

5. Utilisez des serveurs proxy inverses tels que Nginx

L'utilisation de serveurs proxy inverses tels que Nginx peut transmettre les demandes de ressources statiques à Nginx pour traitement, réduisant ainsi la charge de PHP-FPM et améliorant les performances du site Web.

Dans le fichier de configuration Nginx, vous pouvez transmettre les demandes de ressources statiques à Nginx via le code suivant :

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
    proxy_pass http://yourdomain.com;
    proxy_set_header Host $host;
}

Le code ci-dessus transmet les demandes de jpg, jpeg, png, gif, ico, css, js et autres suffixes vers http : Traité sur //votredomaine.com.

6. Utiliser le mécanisme de mise en cache

Dans la logique métier du site Web, le mécanisme de mise en cache peut être utilisé pour réduire l'accès à la base de données et la génération de pages dynamiques, améliorant ainsi les performances du site Web. Ceci peut être réalisé en utilisant des technologies de mise en cache telles que Redis et Memcached.

Le cache Redis peut être utilisé via l'exemple de code suivant :

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'user_info_' . $user_id;
if ($redis->exists($key)) {
    $user_info = $redis->get($key);
} else {
    $user_info = getUserInfoFromDatabase($user_id);
    $redis->setex($key, 3600, $user_info);
}

Le code ci-dessus vérifie d'abord si les informations utilisateur existent dans le cache Si elles existent, elles sont obtenues directement à partir du cache ; les informations utilisateur de la base de données et les stocke dans le cache et définit le délai d'expiration sur 3600 secondes.

Résumé :

En optimisant PHP-FPM, nous pouvons améliorer les performances du site Web et améliorer l'expérience utilisateur. Cet article fournit un guide pratique sur l'optimisation PHP-FPM et donne des exemples de code spécifiques pour votre référence. Dans les applications réelles, il peut également être ajusté et optimisé en fonction de besoins spécifiques pour obtenir les meilleures performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn