zend presente present php71 not how extensión extension está enable cache php opcache

php - presente - Deshabilitar OPCache temporalmente



zend opcache extension is not present (3)

Recientemente me cambié a PHP 5.4 e instalé OPCache, ¡es muy poderoso!

¿Cómo puedo desactivar temporalmente el caché?

Lo intenté :

ini_set(''opcache.enable'', 0);

Pero no tiene ningún efecto.

Gracias


Una vez que se ejecuta su secuencia de comandos, es demasiado tarde para no almacenar en caché el archivo. Debes configurarlo fuera de PHP:

  • Si PHP se ejecuta como módulo de Apache, use un archivo .htaccess :

    php_flag opcache.enable Off

  • Si PHP se ejecuta como CGI / FastCGI, use un archivo .user.ini :

    opcache.enable=0

Y, en cualquier caso, puede usar php.ini bueno y antiguo en todo el sistema si tiene acceso a él.


Your wordpress functions.php debería verse así al registrar su menú:

function anikwai_theme_setup() { register_nav_menus(array( ''primary'' => __(''Primary Menu'') )); } add_action(''after_setup_theme'',''anikwai_theme_setup'');


opcache.enable es PHP_INI_ALL, lo que significa que ini_set () funciona, pero solo para la solicitud actual para deshabilitar el almacenamiento en caché de OPcache por el resto de los scripts compilados en su solicitud actual. (No se puede forzar la habilitación). Se revierte a la configuración predeterminada del sistema para otras solicitudes. En esta etapa, el script de solicitud ya habrá sido almacenado en la memoria caché, a menos que haga el ini_set en un script auto_prepend_file .

Los valores predeterminados del sistema ( PHP_INI_SYSTEM ) están bloqueados como parte del inicio del sistema PHP y no se pueden volver a leer. Entonces, en el caso de Apache, por ejemplo, necesita reiniciar Apache para cambiar / recargar estos.

Las directivas .htaccess php_flag solo se aplican si está ejecutando mod_php o equivalente. Los archivos .user.ini y .user.ini son PHP_INI_PERDIR, que también se bloquearán en la activación de la solicitud.

Ahora a la Q que creo que podrías estar preguntando. Si tiene un sistema dev, la forma más sencilla es configurar opcache.enable=0 en el archivo INI apropiado y reiniciar su servidor web. Vuelva a establecerlo en =1 y reinicie nuevamente cuando haya terminado.

También considere (en el contexto de desarrollo) la configuración de opcache.validate_timestamps=on y opcache.revalidate_freq=0 . Esto mantendrá OPcache habilitado, pero las secuencias de comandos estarán registradas en cada solicitud de compilación para ver si se modifican. Esto da lo mejor de ambos mundos cuando se desarrolla.

Lea también en la directiva opcache.blacklist_filename . Esto le permite especificar un archivo de exclusión, por lo tanto, si este contiene /var/www/test , y el servicio web docroot es /var/www entonces cualquier script en las jerarquías /var/www/test* no se almacenará en caché.

Espero que esto ayude :)