Amélioration section OpCache
This commit is contained in:
parent
de4e62c662
commit
02603bda1c
38
HowtoPHP.md
38
HowtoPHP.md
|
@ -727,33 +727,47 @@ Symfony form ~164ms
|
||||||
|
|
||||||
### OpCache
|
### OpCache
|
||||||
|
|
||||||
~~~
|
|
||||||
# apt install php7.0-opcache
|
|
||||||
~~~
|
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
Il remplace les « accélérateurs » comme APC, eAccelerator, etc. utilisés dans les versions précédentes de PHP.
|
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`).
|
~~~
|
||||||
|
# apt install phpX.X-opcache
|
||||||
|
~~~
|
||||||
|
|
||||||
Pour surveiller OpCache on peut utiliser :
|
La configuration se fait dans `/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>
|
* <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>
|
* Plugins 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>
|
||||||
|
|
||||||
**Attention :** OpCache ne détecte pas les changements dans le code PHP lorsque les déploiements sont fait avec des liens symboliques).
|
#### Reset du cache d'OpCache
|
||||||
|
|
||||||
Avec **Nginx**, la solution est de changer les paramètres FastCGI suivants dans le vhost. Dans le bloc où l'on indique le chemin du socket PHP, il faut ajouter après la dernière directive :
|
OpCache ne détecte pas les changements dans le code PHP lorsque les déploiements sont fait avec des liens symboliques. Il existe une solution « automatique » seulement pour Nginx :
|
||||||
|
|
||||||
|
Dans le vhost, dans le bloc indiquant le chemin du socket PHP, ajouter après la dernière directive :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
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.
|
**Attention :** Ces paramètres doivent être ajouté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.
|
||||||
|
|
||||||
**Apache** ne propose pas de solution similaire. Pour rafraichir le cache, il faut alors soit exécuter la fonction PHP opcache_reset(), soit reloader le service PHP-FPM après le déploiement.
|
Les autres possibilités, notamment dans le cas Apache, sont de reset le cache à la main.
|
||||||
|
|
||||||
|
On peut :
|
||||||
|
|
||||||
|
* Appeler la fonction PHP opcache_reset() (solution applicative)
|
||||||
|
* Redémarrer le service PHP-FPM (solution radicale).
|
||||||
|
* Utiliser CacheTool (solution CLI) :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
php bin/cachetool.phar --fcgi=php-fpm73.sock opcache:reset --cli
|
||||||
|
~~~
|
||||||
|
|
||||||
|
**Attention :** Si l'on oublie l'option `--cli`, on rencontrera l'erreur suivante : `Error: Access denied`.
|
||||||
|
|
||||||
|
|
||||||
## HHVM
|
## HHVM
|
||||||
|
|
Loading…
Reference in a new issue