Arquivos do site sendo armazenados em cache em um servidor da Web Debian executando o PHP 5.5.28

1

Quando faço pequenas alterações no meu site e as carrego, normalmente 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 que tenho código que está armazenando 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.

    
por Michael St Clair 25.09.2015 / 04:33

1 resposta

2

Você está usando o PHP 5.5.28 e, na minha experiência, qualquer um que pula do PHP 5.3 ou 5.4 para o PHP 5.5 precisa estar ciente do novo built-in OPcache (Cache de Operações) sendo ativado por padrão.

Se você já usou o APC (Alternative PHP Cache) , o novo OPcache embutido funciona praticamente o mesmo e é bom para fins de produção de código complexo, mas, por padrão, ele pode ser ativado se você estiver acostumado a fazer o upload de arquivos e as alterações aparecerem imediatamente.

Este site faz um bom trabalho de explicar o que é o OPcache e como ajustá-lo. Mas se você ainda não precisa do OPcache, apenas abra seu arquivo PHP como este; Eu prefiro usar o nano , mas sinta-se livre para usar qualquer editor de texto que você goste de usar:

sudo nano /etc/php5/apache2/php.ini

Procure a linha que diz:

opcache.enable=1

E desative-o mudando a linha para:

;opcache.enable=0

Reinicie o Apache e agora o PHP 5.5 não usará o OPcache. E, honestamente, permitir um cache como esse deve ser uma chamada do administrador do sistema e 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 apenas um exagero, realmente não é necessário e pode até atrapalhar.

Mas se você precisa do OPcache mas também precisa atualizar arquivos PHP regularmente talvez ajustando os valores de configuração do OPcache ajudaria . As configurações padrão são algo 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 :

How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.

O padrão de 60 segundos é bom, mas parece que abaixar o opcache.revalidate_freq para algo como 5 segundos pode ser uma maneira mais agradável de ter o benefício do OPcache ativado, mas ainda ter uma janela de verificação de atualização razoável para você não se deixe enganar por simples atualizações de arquivos.

    
por 25.09.2015 / 05:03