L’optimisation des performances PHP est cruciale sur un VPS, surtout pour les sites WordPress ou tout autre CMS dynamique. Après avoir vu comment booster WordPress avec APCu, découvrons ensemble comment installer, activer et configurer OPcache, le cache d’opcode intégré à PHP, sur un serveur Debian avec Apache utilisant PHP-FPM. Ce guide pas-à-pas vous permettra de tirer le meilleur de votre hébergement, avec des explications claires adaptées aux débutants comme aux utilisateurs avancés.
Qu’est-ce qu’OPcache ?
OPcache est un module de cache d’opcode pour PHP. Il permet de stocker en mémoire les scripts PHP précompilés, évitant ainsi leur recompilation à chaque requête. Résultat : des temps de réponse réduits et une charge serveur allégée, surtout sur les sites à fort trafic ou mutualisés.
Prérequis
- Un VPS sous Debian (Debian 10/11/12 ou Ubuntu)
- Apache installé et fonctionnel avec PHP-FPM
- PHP 7.4 ou supérieur (OPcache est intégré nativement depuis PHP 5.5)
- Accès root ou sudo
1. Installation d’OPcache
Sur Debian, OPcache est généralement inclus dans les paquets PHP. Pour vérifier et installer :
sudo apt update
sudo apt install php-fpm php-opcache Cette commande installe PHP-FPM et le module OPcache s’il n’est pas déjà présent.
2. Vérification de l’installation
Pour vérifier que OPcache est bien installé :
php-fpm8.3 -v Adaptez à votre version (7.4, 8.1, 8.3, etc.)
Vous devriez voir une ligne similaire à :
with Zend OPcache v8.x.x, Copyright (c), by Zend TechnologiesVous pouvez aussi vérifier via :
php-fpm8.3 -i | grep opcache Adaptez à votre version (7.4, 8.1, 8.3, etc.)
Si des lignes s’affichent, OPcache est bien reconnu par PHP.
3. Activation et configuration d’OPcache
Éditez le fichier php.ini de PHP-FPM :
sudo nano /etc/php/8.3/fpm/php.ini Adaptez à votre version (7.4, 8.1, 8.3, etc.)
Ajoutez ou modifiez les lignes suivantes dans le fichier php.ini :
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.max_wasted_percentage=5Exemple de configuration pour un site WordPress en production avec un trafic moyen (à adapter selon vos besoins)
Explication des paramètres OPcache
| Paramètre | Valeur par défaut | Description | Recommandation |
|---|---|---|---|
opcache.enable | 1 | Active ou désactive OPcache. 1 = activé, 0 = désactivé. | Toujours activé en production. |
opcache.memory_consumption | 128 | Mémoire (en Mo) allouée au cache d’opcode. | Adapter selon la taille de vos projets (128 Mo minimum). |
opcache.interned_strings_buffer | 8 | Mémoire (en Mo) pour le stockage des chaînes internées utilisées par PHP. | Augmenter si beaucoup de chaînes sont utilisées. |
opcache.max_accelerated_files | 10000 | Nombre maximum de fichiers PHP pouvant être mis en cache. | Adapter selon le nombre de fichiers de votre app. |
opcache.validate_timestamps | 1 | Vérifie si les fichiers PHP ont été modifiés. 1 = vérifie, 0 = ne vérifie pas. | 1 en développement, 0 en production. |
opcache.revalidate_freq | 2 | Délai (en secondes) entre chaque vérification de modification de fichier uniquement utile si "opcache.validate_timestamps=1" | 60-300 en développement. |
| 1 | Utilise le chemin complet des fichiers. | Laisser 1 |
| 5 | % de mémoire « gaspillée » avant redémarrage. | Laisser par défaut sauf cas particulier. |
Pourquoi ces valeurs ?
interned_strings_buffer=64: WordPress utilise de nombreuses chaînes (textes, slugs, options). Une valeur élevée réduit la duplication en mémoire .validate_timestamps=0: Élimine la surcharge de vérification des fichiers, crucial pour les sites à trafic moyen .
Cette configuration équilibre performance et stabilité pour un WordPress typique, tout en restant sécurisée.
4. Redémarrer PHP-FPM et Apache
Après modification, rechargez PHP-FPM et Apache pour appliquer les changements :
sudo systemctl restart php8.3-fpm
sudo systemctl restart apache2 5. Vérifier le bon fonctionnement d’OPcache
Créez un fichier info.php à la racine de votre site :
<?php phpinfo(); ?>Vous devriez voir les paramètres définis précédemment.
6. Afficher le statut d’OPcache (Optionnel)
Pour surveiller OPcache, il existe des scripts comme opcache-gui ou opcache-status. Ils permettent de visualiser :
- Taux d’utilisation de la mémoire
- Nombre de scripts en cache
- Statistiques de hits/misses...
Conseils de configuration avancée
- En production : Passez
opcache.validate_timestamps=0pour maximiser les performances (redémarrez PHP-FPM après chaque déploiement). - Surveillance : Surveillez la mémoire utilisée par OPcache pour éviter la saturation.
- Sécurité : N’exposez jamais vos scripts de monitoring OPcache sans protection (authentification, restriction IP…).
Conclusion
OPcache est un incontournable pour accélérer PHP sur un serveur Debian avec Apache. Son installation et sa configuration sont simples, et les gains de performance sont immédiats. Pour aller plus loin, surveillez régulièrement l’état du cache et ajustez les paramètres selon la taille de vos projets et la charge de votre serveur.
Résumé des commandes principales
sudo nano /etc/php/8.3/fpm/php.ini # Éditer la config OPcache
sudo systemctl restart php8.3-fpm # Appliquer les changements 