Sempre que alguém visita uma página PHP, o PHP lê os ficheiros do código e traduz-os para um formato interno antes de os executar. O OPcache guarda essa tradução em memória e reutiliza-a, por isso as visitas seguintes poupam esse trabalho. Aqui ele existe mas vem desligado por omissão: liga-se em Select PHP Version. Ajuda sobretudo quando o código é grande, como numa aplicação com muitos ficheiros ou num WordPress carregado de plugins.
Como ligar e confirmar
| 1 |
No cPanel, abra Select PHP Version (secção Software) e escolha a versão que o site usa. Cada versão do PHP tem a sua lista de extensões ligadas.
|
|
| 3 |
Confirme com um ficheiro que contenha <?php phpinfo(); na pasta do site: deve aparecer uma secção chamada Zend OPcache. Apague o ficheiro logo a seguir.
|
|
| 4 |
Meça de novo. O ganho vê-se no tempo de resposta das páginas que não saem da cache de páginas. Veja TTFB alto.
|
|
O que esperar, e o que não
| Situação |
O que o OPcache faz |
| Site com cache de páginas bem configurada |
Pouco: a maior parte das visitas nem chega ao PHP. Veja LiteSpeed Cache. |
| Páginas que não se podem guardar em cache (loja, área de membros, painel) |
Muito: cada visita corre PHP, e poupa-se a leitura e a tradução do código. |
| Uma aplicação grande (framework, loja) |
Bastante: tem muitos ficheiros a ler a cada pedido. Veja pôr uma aplicação Laravel a funcionar. |
| Uma base de dados lenta |
Nada. O OPcache só trata do código, não das consultas. Veja consultas lentas. |
Porque é que as minhas alterações não aparecem
Com o OPcache ligado, o PHP guarda o código e só volta a verificar se o ficheiro mudou de tempos a tempos (o intervalo é o opcache.revalidate_freq, que a documentação do PHP indica como poucos segundos por omissão). Por isso uma edição pode demorar um instante a aparecer. Se passou muito tempo e continua a ver a versão antiga, a causa raramente é o OPcache. Verifique, por esta ordem:
| 2 |
A cache de páginas do site (o plugin, ou um serviço à frente). Faça “Purge All”.
|
|
| 3 |
Editou o ficheiro certo? A pasta do site pode ter outra cópia, ou o tema filho ter prioridade.
|
|
| 4 |
Só então o OPcache. Para o ver fora de jogo, desmarque a caixa em Select PHP Version, repita o teste e volte a marcar. Se a diferença desaparece, o OPcache era o culpado, e então desligue-o enquanto trabalha no código.
|
|
|
Não o deixe ligado num site que está a programar a cada minuto sem contar com o atraso. Muitos programadores ligam-no só em produção. E se um plugin ou uma aplicação gera ficheiros PHP e os executa logo a seguir, pode ver-se código antigo durante um instante.
|
|
Ligou o OPcache e não aparece no phpinfo, ou o site ficou pior? Envie-nos o endereço e a versão do PHP.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |