Mi ci è voluto così tanto tempo per capire che era un problema MAMP! Perché OPcache dovrebbe essere abilitato per impostazione predefinita e richiedere l'armonizzazione di php.ini per disabilitarlo in un'app che dovrebbe essere utilizzata per testare i siti web? Ad ogni modo, ho letto tutto questo thread e ho provato le varie soluzioni.
Ecco le mie note su come funziona ogni soluzione e considerazioni per la selezione di una soluzione.
Ogni soluzione funziona da sola; nessuna necessità di ridondanza.
Soluzione codice pagina web
opcache_reset ();
<?php opcache_reset(); ?>
- Deve essere aggiunto nel codice della pagina web.
- Forza il ricaricamento di tutti gli script.
- Funziona senza riavviare il server MAMP.
Soluzioni di configurazione del server
Importante: utilizza il php.ini
file in /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
e non in
/Applications/MAMP/conf/php5.5.3/php.ini
. Regola di conseguenza se stai utilizzando una versione diversa di PHP.
enable = 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
- Deve essere aggiunto
[OPcache]
in php.ini
.
- Disabilita OPcache.
- Richiede il riavvio del server 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
- Modifica
opcache.revalidate_freq
sotto [OPcache]
in php.ini
.
- Fa in modo che OPcache controlli gli aggiornamenti ogni 0 secondi invece che ogni 60 secondi.
- Richiede il riavvio del server MAMP.
Commentare [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
- Commenta l'intera
[OPcache]
sezione in php.ini
.
- Rimuove OPcache dal server PHP.
- Richiede il riavvio del server MAMP.
considerazioni
Scegli la soluzione per il codice della pagina web se:
- Hai solo bisogno di forzare l'aggiornamento dello script per un particolare progetto
- Non vuoi riavviare il server MAMP
- Non vuoi modificare php.ini
Scegli una soluzione di configurazione del server se:
- Vuoi disabilitare la cache per impostazione predefinita invece di doverlo fare in ogni progetto
- Sei a tuo agio con la modifica di php.ini
Personalmente preferisco enable=0
poiché è la soluzione più semplice per me e ho bisogno di disabilitare la cache per impostazione predefinita.
Riferimenti