
Quando faço pequenas alterações em meu site e as carrego, geralmente leva alguns minutos para que essas alterações sejam refletidas ao vivo. Isso só começou a acontecer depois que instalei um novo sistema Debian através do Google Compute Engine.
Eu descartei a possibilidade de ter código que o armazena em cache, mas é possível que o PHP 5.5.28 ou o Debian possam estar armazenando arquivos em cache? Também verifiquei se não é o navegador e usei a opção chrome para não armazenar arquivos em cache nas ferramentas do desenvolvedor.
Responder1
Você está usando o PHP 5.5.28 e, na minha experiência, qualquer pessoa que esteja saltando do PHP 5.3 ou 5.4 para o PHP 5.5 precisa estar ciente do novoOPcache (cache de operações)sendo habilitado por padrão.
Se você já usouAPC (Cache PHP Alternativo), o novo OPcache integrado funciona praticamente da mesma forma e é bom para fins de produção de código complexo, mas ser habilitado por padrão pode incomodar você se você estiver acostumado a fazer upload de arquivos e as alterações aparecerem imediatamente.
Este site faz um bom trabalhode explicar o que é OPcache e como ajustá-lo. Mas se você ainda não precisa do OPcache, basta abrir seu arquivo PHP ini assim; eu prefiro usarnano
mas fique à vontade para usar qualquer editor de texto de sua preferência:
sudo nano /etc/php5/apache2/php.ini
Procure a linha que diz:
opcache.enable=1
E apenas desative-o alterando essa linha para:
;opcache.enable=0
Reinicie o Apache e agora o PHP 5.5 não usará o OPcache. E, honestamente, habilitar um cache como esse deve ser uma chamada do administrador do sistema e de seu conhecimento de como o código funciona e como o servidor reage
Se o seu site baseado em PHP for leve o suficiente, o OPcache pode ser um exagero, realmente desnecessário e pode até atrapalhar.
Mas se você precisa do OPcache, mas também precisa atualizar arquivos PHP regularmente, talvezajustar os valores de configuração do OPcache ajudaria. As configurações padrão são mais ou menos assim:
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
A principal coisa que vejo nessa configuração que pode atrapalhar uma atualização esperada éopcache.revalidate_freq
:
Com que frequência verificar se há atualizações nos carimbos de data/hora do script, em segundos. 0 resultará na verificação do OPcache por atualizações em cada solicitação.
O padrão de 60 segundos é bom, mas parece-me que reduzir opcache.revalidate_freq
para algo em torno de 5 segundos pode ser uma maneira melhor de ativar o benefício do OPcache, mas ainda ter uma janela de verificação de atualização razoável para que você não tropeçar por simples atualizações de arquivos.