¡Me tomó tanto tiempo descubrir que era un problema MAMP! ¿Por qué OPcache estaría habilitado de forma predeterminada, y requeriría retoques php.ini para deshabilitarlo, en una aplicación que se supone que se usará para probar sitios web? De todos modos, leí todo este hilo y probé las diversas soluciones.
Aquí están mis notas sobre cómo funciona cada solución y las consideraciones para seleccionar una solución.
Cada solución funciona por sí sola; No hay necesidad de redundancia.
Solución de código de página web
opcache_reset ();
<?php opcache_reset(); ?>
- Debe agregarse en el código de la página web.
- Obliga a recargar todos los scripts.
- Funciona sin reiniciar el servidor MAMP.
Soluciones de configuración del servidor
Importante: use el php.ini
archivo en /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
y no en
/Applications/MAMP/conf/php5.5.3/php.ini
. Ajuste en consecuencia si está utilizando una versión diferente de PHP.
habilitar = 0
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
enable=0
- Debe agregarse debajo
[OPcache]
en php.ini
.
- Deshabilita OPcache.
- Requiere reiniciar el servidor MAMP.
opcache.revalidate_freq = 0
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
- Modificar
opcache.revalidate_freq
debajo de [OPcache]
en php.ini
.
- Hace que OPcache busque actualizaciones cada 0 segundos en lugar de cada 60 segundos
- Requiere reiniciar el servidor MAMP.
Comentando [OPcache]
;[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
;opcache.memory_consumption=128
;opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=4000
;opcache.revalidate_freq=60
;opcache.fast_shutdown=1
;opcache.enable_cli=1
- Comente toda la
[OPcache]
sección en php.ini
.
- Elimina OPcache del servidor PHP.
- Requiere reiniciar el servidor MAMP.
Consideraciones
Elija la solución de código de página web si:
- Solo necesita forzar la actualización del script para un proyecto en particular
- No desea reiniciar el servidor MAMP
- No quieres editar php.ini
Elija una solución de configuración del servidor si:
- Desea deshabilitar el almacenamiento en caché de forma predeterminada en lugar de tener que hacerlo en cada proyecto
- Te sientes cómodo editando php.ini
Personalmente prefiero enable=0
ya que es la solución más simple para mí, y necesito el almacenamiento en caché deshabilitado de forma predeterminada.
Referencias