Configurer correctement PHP et PHP-FPM est essentiel pour garantir le fonctionnement efficace et stable de votre site web. Dans ce qui suit, nous allons passer en revue les réglages proposés, en expliquant chaque paramètre et en donnant des conseils sur la manière d'optimiser votre configuration en fonction des visites et de la consommation du site web.
Configurations PHP
limite_mémoire
: 2048M
Fonction : Le paramètre limite_mémoire
définit la quantité maximale de mémoire qu'un script PHP peut utiliser. Si un script dépasse cette limite, il sera interrompu.
Le Conseil :
- Pour les sites à faible trafic : Une valeur de 128M-512M est généralement suffisante.
- Pour les sites à trafic moyen ou élevé et à contenu complexe : Une valeur de 1024M-2048M peut être nécessaire.
- Vérification : Assurez-vous que le serveur dispose d'une mémoire physique suffisante pour prendre en charge ce paramètre. Utilisez des outils de surveillance pour vérifier l'utilisation de la mémoire et ajustez la valeur si nécessaire.
temps_d'exécution_max
: 512
Fonction : Le paramètre temps_d'exécution_max
détermine la durée maximale, en secondes, pendant laquelle un script peut s'exécuter avant d'être interrompu. Cela permet d'éviter que des scripts défectueux consomment des ressources indéfiniment.
Le Conseil :
- Pour les sites à faible trafic : Une valeur de 30 à 60 secondes est souvent suffisante.
- Pour les sites à trafic moyen ou élevé : Une valeur de 60 à 120 secondes peut être suffisante.
- Pour les scripts complexes : Si vos scripts prennent plus de temps (par exemple pour un traitement intensif), vous pouvez augmenter la valeur, mais essayez d'optimiser le code pour réduire le temps d'exécution.
max_input_time
: 512
Fonction : Le paramètre max_input_time
spécifie la durée maximale en secondes pendant laquelle un script peut analyser les données d'entrée (par exemple, les données de formulaire ou les fichiers chargés).
Le Conseil :
- Pour les sites à faible trafic : Une valeur de 30 à 60 secondes est suffisante.
- Pour les sites à trafic moyen ou élevé : Une valeur de 60 à 120 secondes est recommandée.
- Contrôle : Si vos scripts analysent de grandes quantités de données, vérifiez le temps nécessaire et ajustez la valeur en conséquence.
post_max_size
: 128M
Fonction : Le paramètre post_max_size
définit la taille maximale des données pouvant être incluses dans une requête POST.
Le Conseil :
- Pour les sites avec de petits téléchargements : Une valeur de 8M-32M est suffisante.
- Pour les sites avec des téléchargements moyens : Une valeur de 32M-64M est suffisante.
- Pour les sites avec des téléchargements importants : 128M ou plus, en veillant à ce que
upload_max_filesize
est inférieur àpost_max_size
.
upload_max_filesize
: 256M
Fonction : Le paramètre upload_max_filesize
définit la taille maximale d'un fichier téléchargé.
Le Conseil :
- Pour les sites avec de petits fichiers : Une valeur de 2M-16M est suffisante.
- Pour les sites avec des fichiers de taille moyenne : Une valeur de 16M-64M est suffisante.
- Pour les sites contenant des fichiers volumineux : 256M ou plus, assurez-vous que la valeur de
post_max_size
est supérieur àupload_max_filesize
.
opcache.enable
: on
Fonction : Activez la mise en cache des opcodes pour améliorer les performances de votre application PHP.
Le Conseil : Laissez ce paramètre activé pour améliorer les performances. Veillez à configurer correctement les autres paramètres d'opcache pour en tirer le meilleur parti.
désactiver_fonctions
: opcache_get_status
Fonction : Désactive certaines fonctions PHP pour des raisons de sécurité.
Le Conseil : Ne désactivez que les fonctions qui ne sont pas nécessaires à la sécurité de votre site.
Paramètres courants de PHP
include_path
Fonction : La liste des répertoires dans lesquels les scripts PHP recherchent les fichiers inclus ou requis.
Le Conseil : Conservez le chemin d'accès par défaut, sauf si vous avez une raison particulière de le modifier. N'ajoutez des chemins que s'ils sont nécessaires au fonctionnement de votre site.
session.save_path
Fonction : Le répertoire dans lequel les fichiers de session PHP sont stockés.
Le Conseil : Le répertoire par défaut est généralement adéquat, mais assurez-vous qu'il dispose des autorisations de lecture et d'écriture appropriées. Si votre site utilise beaucoup de sessions, envisagez d'utiliser une solution de stockage de sessions plus puissante, telle que Redis ou Memcached.
rapport_d'erreur
: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
Fonction : Le niveau de signalement des erreurs de PHP.
Le Conseil : Conservez cette configuration pour l'environnement de production afin d'éviter que des messages d'erreur non critiques ne soient affichés aux utilisateurs finaux.
afficher_erreurs
: off
Fonction : Détermine si les erreurs PHP doivent être affichées dans la sortie.
Le Conseil : Pour des raisons de sécurité, ce paramètre doit être désactivé en production. Ne l'activez que dans un environnement de développement.
log_errors
: on
Fonction : Permet d'accéder aux erreurs PHP, en les enregistrant dans un fichier journal.
Le Conseil : Laissez ce paramètre activé pour pouvoir résoudre les problèmes éventuels. Vérifiez régulièrement les journaux d'erreurs afin d'identifier et de corriger les bogues éventuels.
Paramètres de PHP-FPM
pm.max_children
: 12
Fonction : Le nombre maximum de processus enfants que PHP-FPM peut créer.
Le Conseil :
- Pour les sites à faible trafic : 5 à 10 essais suffisent.
- Pour les sites à trafic moyen ou élevé : De 10 à 20 processus peuvent être nécessaires.
- Contrôle : Il surveille l'utilisation de la mémoire et de l'unité centrale afin de déterminer le nombre optimal de processus.
pm.start_servers
: 2
Fonction : Nombre de processus serveur au démarrage.
Le Conseil :
- Pour les sites à faible trafic : 1 à 2 processus sont adéquats.
- Pour les sites à trafic moyen ou élevé : 2-4 processus au démarrage.
- Contrôle : Vérifiez le temps de démarrage du serveur et ajustez la valeur si nécessaire.
pm.min_spare_servers
: 2
Fonction : Nombre minimum de processus serveur inactifs.
Le Conseil :
- Pour les sites à faible trafic : 1 à 2 processus sont adéquats.
- Pour les sites à trafic moyen ou élevé : 2-4 processus inactifs.
- Contrôle : Maintenir un nombre suffisant de processus inactifs pour répondre rapidement aux nouveaux utilisateurs.
pm.max_spare_servers
: 4
Fonction : Nombre maximal de processus serveur inactifs.
Le Conseil :
- Pour les sites à faible trafic : 2-4 sont adéquats.
- Pour les sites à trafic moyen ou élevé : 4-6 processus inactifs.
- Contrôle : Ajuster en fonction de la charge pour éviter le gaspillage des ressources.
pm.max_requests
: 500
Fonction : Nombre maximal de demandes que chaque processus enfant peut exécuter avant d'être recyclé.
Le Conseil :
- Pour les sites à faible trafic : 200 à 500 demandes peuvent suffire.
- Pour les sites à trafic moyen ou élevé : 500-1000 demandes sont plus appropriées.
- Contrôle : Il surveille le comportement des processus et ajuste la valeur pour éviter les fuites de mémoire et assurer la stabilité.
pm
: dynamique
Fonction : Il détermine le comportement de la gestion des processus enfants.
Le Conseil : Garder dynamique
pour une gestion souple des processus enfants en fonction de la charge du serveur. Dans certains cas, à la demande
peut être utile pour économiser des ressources en période de faible trafic.
Suggestions supplémentaires
Suivi des ressources
Utilisez des outils de surveillance tels que New Relic ou des outils de surveillance des serveurs pour garder un œil sur l'utilisation de la mémoire et de l'unité centrale.
- Le Conseil : Il surveille régulièrement le serveur afin de détecter et de résoudre rapidement tout problème de performance.
Mise en cache
Il met en œuvre la mise en cache côté serveur (par exemple Varnish) et/ou la mise en cache côté application pour réduire la charge sur le serveur.
- Le Conseil : Un bon système de mise en cache peut améliorer considérablement les performances du site.
Mises à jour régulières
S'assurer que tous les composants du serveur et les bibliothèques utilisées sont à jour afin de bénéficier des améliorations de performance et des correctifs de sécurité.
- Le Conseil : Maintenez vos logiciels à jour pour éviter les failles de sécurité et les problèmes de compatibilité.
Grâce à ces configurations et à ces conseils, vous devriez être en mesure de gérer efficacement la mémoire de PHP-FPM et d'améliorer les performances de votre site web.