Demorei tanto para descobrir que era um problema do MAMP! Por que o OPcache seria ativado por padrão - e requer que o php.ini seja desativado - em um aplicativo que deveria ser usado para testar sites? Enfim, li todo esse tópico e tentei as várias soluções.
Aqui estão minhas anotações sobre como cada solução funciona e considerações para selecionar uma solução.
Cada solução funciona por conta própria; não há necessidade de redundância.
Solução de código de página da web
opcache_reset ();
<?php opcache_reset(); ?>
- Deve ser adicionado ao código da página da web.
- Força todos os scripts a serem recarregados.
- Funciona sem reiniciar o servidor MAMP.
Soluções de configuração de servidor
Importante: Use o php.ini
arquivo /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
e não dentro
/Applications/MAMP/conf/php5.5.3/php.ini
. Ajuste de acordo se você estiver usando uma versão diferente do 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 ser adicionado
[OPcache]
em php.ini
.
- Desativa o OPcache.
- Requer reinicialização do 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
- Modifique
opcache.revalidate_freq
em [OPcache]
in php.ini
.
- Faz com que o OPcache verifique se há atualizações a cada 0 segundos em vez de a cada 60 segundos.
- Requer reinicialização do 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 a
[OPcache]
seção inteira em php.ini
.
- Remove o OPcache do servidor PHP.
- Requer reinicialização do servidor MAMP.
Considerações
Escolha a solução de código da página da Web se:
- Você só precisa forçar a atualização de script para um projeto específico
- Você não deseja reiniciar o servidor MAMP
- Você não deseja editar o php.ini
Escolha uma solução de configuração do servidor se:
- Você deseja desativar o cache por padrão, em vez de precisar fazê-lo em todos os projetos
- Você está confortável com a edição do php.ini
Pessoalmente, prefiro, enable=0
pois é a solução mais simples para mim e preciso usar o cache desativado por padrão.
Referências