J'ai rencontré des problèmes "idiots" pour la mise en place du cache qui m'ont retardé dans mes tests.
Profitant de quelques jours de congés dans le centre j'ai effectué quelques recherches et fini par me rendre compte que seul l'endroit où je voulais installer le répertoire de cache (/var/tmp/opcache) posait problème, même avec tous les bons attributs. J'ai alors essayé d'utiliser le répertoire "/home/opcache" dûment autorisé par un "chown www-data:www-data /home/opcache" et ... miracle cela fonctionne dès le restart d'Apache. Je n'ai pas encore compris l'astuce !
Le répertoire "/home/opcache" se peuple rapidement d'un répertoire au nom abscons : "78e784e1b844f19ba1d9d3014253c3f0" , il sera différent ailleurs, contenant un arbre de répertoires correspondant à l'arbre des fichiers PHP des applications installées, le nom change par ailleurs à chaque nouvelle version du logiciel. Les "anciennes" versions peuvent être éliminées sans danger.
Pour mémoire les paramètres "opcache" utilisés :
opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.max_wasted_percentage=5 opcache.use_cwd=1 opcache.validate_timestamps=1 opcache.revalidate_freq=2 opcache.save_comments=1 opcache.enable_file_override=1 opcache.consistency_checks=20 opcache.error_log="/var/log/apache2/opcache.log" opcache.log_verbosity_level=4 opcache.file_cache = "/home/opcache" opcache.validate_permission=0 |
L'option "save_comments" est absolument nécessaire si vos applications utilisent des "annotations" car celles-ci se cachent, lâchement, au milieu des commentaires ...et sans les annotations les programmes peuvent ne plus fonctionner ou peuvent ne plus fonctionner nromalement.
L'option "use_cwd" est nécessaire afin d'éviter la collision si deux scripts PHP présents dans deux répertoires différents portent le même nom.
Et ça marche.
Quelques mois plus tard :
- La charge CPU est réduite
- Les temps de réponse sont excellents.