Le problème à résoudre
À chaque requête, PHP doit charger et compiler des fichiers avant de les exécuter. OPcache conserve leur bytecode en mémoire partagée et évite une grande partie de ce travail répétitif.
Il ne stocke pas le HTML final et ne remplace pas un cache de page. Son bénéfice concerne les requêtes qui passent réellement par PHP, notamment l’administration et les utilisateurs connectés.
Reconnaître les bons signaux
| Signal observé | Interprétation probable | Premier contrôle |
|---|---|---|
| Taux de hit faible | Cache trop petit ou redémarrages | Lire statistiques OPcache |
| Cache full | Mémoire ou nombre de fichiers insuffisant | Ajuster les deux limites |
| Code ancien après déploiement | Revalidation désactivée | Prévoir un reset contrôlé |
Les notions à maîtriser
- memory_consumption réserve la mémoire aux scripts compilés.
- max_accelerated_files doit dépasser le nombre de fichiers PHP utiles avec une marge.
- validate_timestamps contrôle la détection automatique des changements de code.
- Un redémarrage PHP-FPM vide généralement le cache et doit être planifié.
Méthode de diagnostic
Plan d’action recommandé
- Activer OPcache avec une mémoire réaliste pour l’application.
- Dimensionner le nombre de fichiers au-dessus de l’usage observé.
- Garder la validation périodique si les déploiements ne font pas de reset.
- Exclure la CLI sauf besoin mesuré.
- Surveiller après une mise à jour majeure de plugins ou du CMS.
Vérifier la configuration réellement chargée
La CLI et PHP-FPM peuvent lire des fichiers différents. Comparez les deux sorties et contrôlez le chemin du fichier de configuration avant de conclure.
php --ini
php -i | grep -E 'opcache.enable|opcache.memory_consumption|opcache.max_accelerated_files'
php-fpm8.3 -i | grep -E 'Loaded Configuration|opcache.enable|opcache.memory_consumption'La commande PHP-FPM varie selon la distribution. Une page de diagnostic temporaire doit rester protégée puis être supprimée après le contrôle.
Erreurs fréquentes à éviter
- Copier une configuration de gros serveur sur une petite instance.
- Désactiver validate_timestamps sans procédure de purge au déploiement.
- Conclure qu’OPcache accélérera les images ou les appels externes.
Indicateurs à suivre
| Indicateur | Repère | Pourquoi le suivre |
|---|---|---|
| Hit rate | > 99 % après chauffe | Mesure la réutilisation |
| Mémoire libre | Marge sans cache full | Évite les expulsions |
| Restarts | Rares et expliqués | Repère le dimensionnement |
Checklist avant validation
- Une mesure de référence est conservée.
- Le changement est testé hors production lorsque c’est possible.
- Une sauvegarde ou un retour arrière est disponible.
- Les dépendances web, e-mail et DNS ont été contrôlées.
- Les journaux et alertes sont surveillés après intervention.
- Le résultat est documenté avec date et responsable.
Questions fréquentes
OPcache est-il inclus dans PHP ?
Oui dans les versions modernes, mais il doit être activé et configuré.
Faut-il purger après mise à jour ?
Si la validation est désactivée, oui ; sinon la nouvelle version sera détectée selon la fréquence réglée.
Combien de mémoire ?
Mesurez l’usage et gardez une marge : le bon chiffre dépend du nombre et de la taille des scripts.
Sources techniques
Pour vérifier les règles et approfondir le sujet :
Besoin d’un réglage OPcache adapté ?
Le nombre de scripts, la mémoire et la méthode de déploiement déterminent une configuration saine.
Préparer une configuration OPcache