zend presente extensión está enable php zend-cache opcache php-5.5

php - presente - Zend OPCache-opcache.enable_cli 1 or 0? ¿Qué hace?



php 7.2 zend opcache (3)

En la documentación dice "principalmente utilizado para la depuración", lo que me haría pensar que "nunca lo habilito a menos que tenga un problema y necesite hacer un poco de depuración", sin embargo, leer todo lo que pude encontrar dice que habilitarlo "opcache .enable_cli 1 "pero ¿por qué? No pude encontrar ninguna información relacionada con este asunto, por lo que si alguien sabe, ¿por qué debería habilitarla si la documentación básicamente dice que debe mantenerse en 0?


Con PHP7 y el almacenamiento en caché basado en archivos, ahora puede tener sentido habilitar opcache para CLI. La mejor posibilidad sería tener un php.ini separado para CLI con la siguiente configuración:

opcache.enable=1 opcache.enable_cli=1 opcache.file_cache="/tmp/php-file-cache" opcache.file_cache_only=1 opcache.file_cache_consistency_checks=1

opcache.file_cache_only=1 se asegura de que opcache en la memoria esté deshabilitado y solo se usen los archivos, que es lo que desea para la CLI. Esto debería aumentar un poco el tiempo de ejecución.

En el archivo php.ini para FPM, deseará tener la misma configuración, pero use opcache.file_cache_only=0 , por lo que se usa opcache en memoria y la memoria caché del archivo se usa como alternativa (lo que también hace que FPM sea más rápido, porque el archivo el caché reduce el tiempo de calentamiento cuando se reinicia FPM o se reinicia opcache, porque los archivos en caché permanecen).

De esta manera, CLI y FPM comparten el caché de archivos, y FPM tiene el caché en memoria como un segundo caché primario para la velocidad máxima. Una gran mejora en PHP7! Solo asegúrese de elegir un directorio para opcache.file_cache donde CLI y FPM puedan escribir, y que el mismo usuario realice la escritura / lectura.

ACTUALIZACIÓN 2017

Ya no recomendaría usar el caché de archivos con FPM (solo usarlo para CLI), porque no hay manera de reiniciar el caché al configurar opcache.validate_timestamps=0 : el caché de archivos impide que PHP-FPM reconozca cualquier cambio, porque opcache_reset() o incluso un reinicio completo de PHP-FPM no afecta la memoria caché del archivo y no hay un equivalente para la memoria caché del archivo, por lo que nunca se notan los scripts modificados. Informé esto como un "error" / "solicitud de función" en marzo de 2016, pero actualmente esto no se considera un problema. ¡Ten cuidado si usas opcache.validate_timestamps=0 !


Déjalo apagado. Es principalmente para uso mientras se depuran problemas con OPcache.

La opción opcache.enable_cli habilita PHP OPcache cuando ejecuta scripts PHP desde la línea de comandos (usando el comando php ). Sin embargo, tenga en cuenta que para PHP 5.x, la extensión OPcache funciona almacenando los códigos de la memoria caché en la memoria del proceso actual . Esto solo es útil cuando el proceso que ejecuta PHP va a manejar múltiples solicitudes que pueden reutilizar estos códigos de operación, como en un servidor web o bajo FastCGI. Para un proceso como el PHP CLI, que ejecuta una "solicitud" y sale, solo desperdicia memoria y tiempo.


Según los documentos PHP :

opcache.enable_cli boolean habilita el caché de opcode para la versión CLI de PHP. Esto es principalmente útil para probar y depurar.

Por lo tanto, debe estar deshabilitado a menos que realmente necesites esto.

Esto puede ser útil cuando se ejecuta algún proceso de migración a largo plazo desde la línea de comandos (personalmente, he probado OPcache v7.0.3 para CLI ejecutando un extenso script de migración y no vi muchas mejoras de rendimiento).