PHP 8 et OPcache : configuration recommandée pour PrestaShop
Un PHP mal réglé rend lent le meilleur des serveurs. Voici les valeurs que nous utilisons comme point de départ sur les boutiques PrestaShop 8 et 9.
PrestaShop est une grosse application PHP : des milliers de fichiers chargés à chaque requête. C'est pourquoi la configuration de PHP, et en particulier d'OPcache, a un impact énorme sur la vitesse.
Quelle version de PHP
- PrestaShop 9 : PHP 8.1 à 8.4. Nous recommandons 8.3, stable et rapide.
- PrestaShop 8 : PHP 7.2 à 8.1. Utilisez 8.1 si vos modules le supportent.
Avant de changer de version, testez sur une copie : d'anciens modules peuvent échouer avec PHP 8 à cause de fonctions supprimées ou de types plus stricts.
OPcache : la configuration qui compte le plus
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=40000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
max_accelerated_files: une boutique avec beaucoup de modules dépasse facilement 20 000 fichiers PHP. Si la valeur est basse, OPcache se remplit et cesse de mettre en cache.memory_consumption: 256 Mo est un bon point de départ. Vérifiez avecopcache_get_status()qu'elle n'est pas épuisée.revalidate_freq: tous les combien de secondes il vérifie si un fichier a changé. En production, 60 convient ; après un déploiement, videz OPcache ou attendez ce délai.
Autres paramètres
memory_limit=512M
max_execution_time=300
max_input_vars=10000
upload_max_filesize=64M
post_max_size=64M
realpath_cache_size=4096K
realpath_cache_ttl=600
max_input_vars est le coupable classique des formulaires qui « n'enregistrent pas tout » : avec des produits à nombreuses déclinaisons ou de grosses traductions, des milliers de champs sont envoyés, et PHP ignore ceux qui dépassent la limite sans prévenir.
php.ini, dans un .user.ini à la racine ou depuis le panneau (cPanel, Plesk). Chez certains hébergeurs, c'est le .user.ini de la racine qui fait foi et les changements mettent quelques minutes à s'appliquer.Comment vérifier ce qui s'applique réellement
PrestaShop affiche la configuration de PHP dans Paramètres avancés > Informations. Et si vous avez SSH, php -i | grep opcache vous donne les valeurs de la ligne de commande, qui peuvent différer de celles du serveur web : comparez les deux.