Ajout paramètres vhost indispensables quand on utilise OpCache (sinon pas de maj du bytecode dans le cache après un nouveau déploiement)

This commit is contained in:
whirigoyen 2021-11-25 15:04:39 +01:00
parent 741683e40c
commit 8665f358f3

View file

@ -721,21 +721,27 @@ Symfony form ~164ms
# apt install php7.0-opcache
~~~
Depuis PHP 5.6 (Debian 8), un cache d'OPcode (code "intermédiaire"
généré par PHP) intégré à PHP permet d'accélérer la génération du
résultat des scripts PHP. Il remplace les « accélérateurs » comme
APC, eAccelerator, etc. utilissé dans les versions précédentes de
PHP.
OpCache est un module PHP qui réduit le temps d'exécution du code PHP. Il pré-compile le code PHP en byte-code et le stocke en cache.
C'est le module OpCache configurable via
`/etc/php5/mods-available/opcache.ini`.
La valeur de cache par défaut est de **64M**, paramètre
`opcache.memory_consumption`.
Il remplace les « accélérateurs » comme APC, eAccelerator, etc. utilisés dans les versions précédentes de PHP.
Il est configurable via `/etc/php5/mods-available/opcache.ini`. La valeur de cache par défaut est de `64M` (paramètre `opcache.memory_consumption`).
Pour surveiller OpCache on peut utiliser :
- <https://github.com/amnuts/opcache-gui>
- Plugin Munin <https://github.com/munin-monitoring/contrib/blob/master/plugins/php/php_opcache> + <https://github.com/munin-monitoring/contrib/blob/master/plugins/php/php_opcache.php>
* <https://github.com/amnuts/opcache-gui>
* Plugin Munin <https://github.com/munin-monitoring/contrib/blob/master/plugins/php/php_opcache> + <https://github.com/munin-monitoring/contrib/blob/master/plugins/php/php_opcache.php>
Pour que OpCache détecte bien les changements dans les fichiers PHP et les déploiements (notamment lorsque des liens symboliques sont utilisés), il faut changer les paramètres FastCGI par défaut du vhost. Sinon, c'est le byte-code des anciens fichiers qui sera exécuté par le serveur.
Par exemple, pour Nginx, dans le bloc où l'on indique le chemin du socket PHP, il faut ajouter après la dernière directive :
~~~
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
~~~
Ces paramètres doivent être indiqués après les inclusions (par exemple `include snippets/fastcgi-php.conf;`), car sinon les paramètres contenus dans la configuration inclue risqueraient d'écraser ceux que l'on vient d'ajouter.
## HHVM