Configuración en tiempo de ejecución
El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| opcache.enable | "1" | PHP_INI_ALL | |
| opcache.enable_cli | "0" | PHP_INI_SYSTEM | |
| opcache.memory_consumption | "64" | PHP_INI_SYSTEM | |
| opcache.interned_strings_buffer | "4" | PHP_INI_SYSTEM | Available since PHP 5.3.0. |
| opcache.max_accelerated_files | "2000" | PHP_INI_SYSTEM | |
| opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM | |
| opcache.use_cwd | "1" | PHP_INI_SYSTEM | |
| opcache.validate_timestamps | "1" | PHP_INI_ALL | |
| opcache.revalidate_freq | "2" | PHP_INI_ALL | |
| opcache.revalidate_path | "0" | PHP_INI_ALL | |
| opcache.save_comments | "1" | PHP_INI_SYSTEM | |
| opcache.load_comments | "1" | PHP_INI_ALL | |
| opcache.fast_shutdown | "0" | PHP_INI_SYSTEM | |
| opcache.enable_file_override | "0" | PHP_INI_SYSTEM | |
| opcache.optimization_level | "0xffffffff" | PHP_INI_SYSTEM | |
| opcache.inherited_hack | "1" | PHP_INI_SYSTEM | |
| opcache.dups_fix | "0" | PHP_INI_ALL | |
| opcache.blacklist_filename | "" | PHP_INI_SYSTEM | |
| opcache.max_file_size | "0" | PHP_INI_SYSTEM | |
| opcache.consistency_checks | "0" | PHP_INI_ALL | |
| opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM | |
| opcache.error_log | "" | PHP_INI_SYSTEM | |
| opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM | |
| opcache.preferred_memory_model | "" | PHP_INI_SYSTEM | |
| opcache.protect_memory | "0" | PHP_INI_SYSTEM | |
| opcache.mmap_base | NULL |
PHP_INI_SYSTEM | |
| opcache.restrict_api | "" | PHP_INI_SYSTEM |
He aquí una breve explicación de las directivas de configuración.
-
opcache.enableboolean -
Habilita la caché de opcode. Cuando está deshabilitado, el código no es optimizado o almacenado en caché. El ajuste opcache.enable no puede ser habilitado en tiempo de ejecución enabled at runtime a través de ini_set(), solamente puede ser deshabilitado. Intentar habilitarlo en un script gernerará una advertencia.
-
opcache.enable_cliboolean -
Habilita la caché de opcode para la versión CLI de PHP. Esto es especialmente útil para pruebas y depuración.
-
opcache.memory_consumptioninteger -
EL tamaño del almacén de memoria compartida utilizado por OPcache, en megabytes.
-
opcache.interned_strings_bufferinteger -
La cantidad de memoria utilizada para almacenar cadenas, en megabytes. Esta directiva de configuración es ignorada en PHP < 5.3.0.
-
opcache.max_accelerated_filesinteger -
El número máximo de claves (y por lo tanto, de scripts) en la tabla de hash de OPcache. El valor que realmente se utilizará será el primer número en el conjunto de los números primos { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } que sea mayor que el valor configurado. Sólo números entre 200 y 100000 están permitidos.
-
opcache.max_wasted_percentageinteger -
El porcentaje máximo de memoria desperdiciada que está permitida antes de que un reinicio sea programado.
-
opcache.use_cwdboolean -
Si está habilitada, OPcache añade el directorio de trabajo actual a la clave del script, eliminado así las posibles colisiones entre ficheros con el mismo nombre base. Deshabilitar esta directiva mejora el rendimiento pero podría generar problemas en aplicaciones existentes.
-
opcache.validate_timestampsboolean -
Si está habilitado, OPcache consultará por scripts actualizados cada opcache.revalidate_freq segundos. Cuando esta directiva está deshabilitada, se debe reiniciar OPcache de forma manual mediante opcache_reset(), opcache_invalidate() o reiniciando el servidor web para que los cambios en el sistema de ficheros tomen efecto.
-
opcache.revalidate_freqinteger -
La frecuencia de verificación de las marcas temporales de Unix de los scripts por actualizaciones, en segundos. 0 hará que OPcache consulte por actualizaciones en cada petición.
Esta directiva de configuración es ignorada si opcache.validate_timestamps está deshabilitada.
-
opcache.revalidate_pathboolean -
Si está deshabilitada, los ficheros cacheados existentes que usen el mismo include_path serán reutilizados. Por lo tanto, si un fichero con el mismo nombre está en algún otro lado del include_path, no será encontrado.
-
opcache.save_commentsboolean -
Si está deshabilitada, todos los comentarios de la documentación serán elliminados de la caché de opcode para reducir el tamaño del código optimizado. Deshabilitar esta directiva de configuración podría generar problemas en aplicaciones y frameworks que dependen del análisis de comentarios para anotaciones, incluyendo Doctrine, Zend Framework 2 y PHPUnit.
-
opcache.load_commentsboolean -
Si está deshabilitada, los comentarios de la documentación no serán cargados de la caché de opcode aun si éstos existen. Esto puede ser usado junto con opcache.save_comments para cargar sólo los comentarios para las aplicaciones que los requieran.
-
opcache.fast_shutdownboolean -
Si está habilitada, una secuencia de apagado rápida es utilizada que no libera cada bloque asignado sino que depende del gestor de memoria del Zend Engine para rescindir del conjunto de variables de petición completo.
-
opcache.enable_file_overrideboolean -
Cuando está habilitada, la caché de opcode será consultado para determinar si un fichero ya ha sido cacheado cuando file_exists(), is_file() y is_readable() son llamadas. Esto puede incrementar el rendimiento en aplicaciones que chequean la existencia y legibilidad de los scripts PHP, pero arriesgando devolver datos obsoletos si opcache.validate_timestamps está deshabilitada.
-
opcache.optimization_levelinteger -
Un bitmask que controla cúales permisos de optimización son ejecutados.
-
opcache.inherited_hackboolean -
En PHP < 5.3, OPcache almacena los lugares donde los opcodes DECLARE_CLASS utilizaron herencia; cuando el fichero es cargado, OPcache intenta enlazar las clases heredadas usando el ambiente actual. El problema es que mientras que el opcode DECLARE_CLASS pueda no ser necesario en el script actual, si el script requiere que el opcode esté definido, podría no ejecutarse.
Esta directiva de configuración es ignorada en PHP 5.3 y posteriores.
-
opcache.dups_fixboolean -
Este hack debería estar habilitado para funcionar sólo para evitar errores "Cannot redeclare class".
-
opcache.blacklist_filenamestring -
La ubicación del fichero de blacklist de OPcache. Un fichero blacklist es un texto que contiene los nombres de los ficheros que no deberían ser acelerados, uno por línea. Se permiten comodines, y prefijos también pueden ser provistos. Las líneas que comienzen con un punto y coma son ignoradas como comentarios.
Un fichero blacklist simple luciría así:
; Matches a specific file. /var/www/broken.php ; A prefix that matches all files starting with x. /var/www/x ; A wildcard match. /var/www/*-broken.php
-
opcache.max_file_sizeinteger -
El tamaño de fichero máximo que será almacenado en caché, en bytes. Si es 0, todos los ficheros serán almacenados en caché.
-
opcache.consistency_checksinteger -
Si es distinto de cero, OPcache verificará el checksum de la caché cada N peticiones, donde N es el valor de esta directiva de configuración. Esto debería sólo estar habilitado durante la depuración ya que puede tener un impacto negativo en el rendimiento.
-
opcache.force_restart_timeoutinteger -
La cantidad de tiempo a esperar el comienzo de un reinicio programado si la caché no está activa, en segundos. Si se acaba el tiempo, entonces OPcache asume que algo anda mal y terminará todos los procesos que bloqueen la caché para permitir un reinicio.
Si opcache.log_verbosity_level es 3 o más, un error será registrado en el registro de errores si esto ocurre.
-
opcache.error_logstring -
El registro de errores de errores de OPcache. Una cadena vacía es tratada de igual forma que stderr, y resultará en registros siendo enviados a errores estándar (que será el registro de errores del servidor Web en la mayoría de los casos).
-
opcache.log_verbosity_levelinteger -
El nivel de verbosidad del registro. Por defecto, sólo los errores fatales (nivel 0) y errores (nivel 1) son registrados. Otros niveles disponibles son advertencias (nivel 2), mensajes de información (nivel 3) y mensajes de depuración (nivel 4).
-
opcache.preferred_memory_modelstring -
El modelo de memoria principal que utilizará OPcache. Si se deja vacío, OPcache seleccionará el modelo más apropiado, el cual es el comportamiento correcto en prácticamente todos los casos.
Los valores posibles incluyen mmap, shm, posix y win32.
-
opcache.protect_memoryboolean -
Protege la memoria compartida de escrituras inesperadas mientras se ejecutan scripts. Esto es útil sólo para depuración interna.
-
opcache.mmap_basestring -
La base usada para los segmentos de memoria compartida en Windows. Todos los procesos PHP deben mapear la memoria compartida con el mismo espacio de direcciones. Utilizando esta directiva se corrigen los errores "Unable to reattach to base address".
-
opcache.restrict_apistring -
Permite llamar a funciones de la API de OPcache solamente desde scripts de PHP cuya ruta comience con la cadena especificada. El valor predeterminado de "" significa sin restricciones.