Como Ativar e Configurar o Módulo PHP Opcache no ServBay
O ServBay é um poderoso ambiente de desenvolvimento Web local projetado especialmente para desenvolvedores, integrando diversas stacks tecnológicas, inclusive PHP. Para ajudar a otimizar o desempenho das aplicações PHP, o ServBay pré-instala o módulo Opcache em cada versão suportada do PHP. Neste artigo, mostraremos em detalhes como ativar e configurar o Opcache no ServBay, além de explicar como ele acelera seus fluxos de desenvolvimento e testes em PHP.
Visão geral do módulo Opcache
Opcache é uma extensão oficial do PHP voltada para aumentar a performance na execução de códigos PHP. Seu princípio básico consiste em armazenar em memória compartilhada o bytecode pré-compilado de scripts PHP. Dessa forma, solicitações subsequentes ao mesmo script podem usar o bytecode já em cache, sem precisar repetir a análise, compilação e otimização do código, o que reduz drasticamente o consumo de CPU e memória, além de acelerar o tempo de resposta das aplicações.
Por que o Opcache é importante para desenvolvedores?
- Desenvolvimento e testes mais rápidos: Ativar o Opcache em seu ambiente local faz com que suas aplicações sejam executadas mais rapidamente, reduzindo o tempo de carregamento das páginas e tornando o desenvolvimento mais eficiente.
- Simula o ambiente de produção: A maioria dos ambientes de produção utiliza o Opcache para aumentar o desempenho. Ativá-lo localmente permite que seu ambiente de desenvolvimento fique mais próximo ao cenário real de produção.
- Menor consumo de recursos: Especialmente ao rodar frameworks grandes ou aplicações complexas, o Opcache reduz significativamente o uso de recursos na máquina local.
Principais características do Opcache
- Cache de bytecode: Funcionalidade central — armazena o código PHP já compilado em memória.
- Memória compartilhada: O cache é mantido em memória compartilhada, acessível por múltiplos processos PHP.
- Expiração automática: Opcache pode ser configurado para verificar atualizações dos arquivos periodicamente, garantindo que o cache esteja sempre atualizado.
- Configuração flexível: Oferece inúmeras opções de ajustes que podem ser adaptadas às necessidades do desenvolvedor.
- Suporte nativo: Por ser uma extensão oficial, está profundamente integrada ao núcleo do PHP.
Suporte ao Opcache no ServBay
O ServBay já vem com o Opcache instalado para todas as versões integradas do PHP (como PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 etc). Não é necessário baixar ou compilar nada extra — basta ativar e configurar via interface gráfica do ServBay ou editando o arquivo de configuração.
Como Ativar o Módulo Opcache
Existem duas maneiras principais de ativar o Opcache no ServBay: através da interface gráfica (GUI) ou editando manualmente o arquivo de configuração.
Método 1: Ativar pelo GUI do ServBay (recomendado)
Este é o jeito mais simples e rápido.
- Abra o aplicativo ServBay.
- No menu lateral, clique em Linguagens (Languages).
- Selecione a versão do PHP para a qual deseja ativar o Opcache, por exemplo, PHP 8.3.
- Na página de detalhes da versão PHP, clique na aba Extensões (Extensions).
- Localize a extensão OPcache na lista.
- Clique no botão de alternância à esquerda de OPcache para ativá-lo.
- Clique no botão Salvar (Save) no rodapé da página.
- O ServBay solicitará que você reinicie o pacote PHP correspondente para aplicar as alterações. Clique em Reiniciar (Restart).
Após a reinicialização, o módulo Opcache estará ativo.
Método 2: Editando manualmente o arquivo de configuração
Se você prefere maior controle sobre as opções ou deseja gerenciar via arquivo, pode editar manualmente o arquivo .ini
do Opcache.
- Localize o arquivo de configuração: O Opcache tem seu arquivo específico na pasta
conf.d
da respectiva versão do PHP. A pasta armazena arquivos de configuração para diversas extensões da versão escolhida.- Por exemplo, para PHP 8.3, o caminho normalmente é:
/Applications/ServBay/etc/php/8.3/conf.d/opcache.ini
1 - Adapte o número da versão conforme necessário para a versão do PHP que estiver utilizando.
- Por exemplo, para PHP 8.3, o caminho normalmente é:
- Edite o arquivo de configuração: Utilize o editor de texto de sua preferência para abrir
opcache.ini
.- Geralmente o arquivo já traz um modelo de configuração do Opcache, mas comentado. Procure a seção
[Zend Opcache]
. - Descomente (remova o
;
do início da linha) a linhazend_extension = opcache.so
para garantir que a extensão será carregada. - Modifique ou adicione outros parâmetros de configuração do Opcache conforme desejado. Veja um exemplo (os significados são explicados na seção seguinte):ini
[Zend Opcache] ; Ensure the extension is loaded zend_extension = opcache.so ; Basic Configuration (example values) opcache.enable = 1 ; Enable Opcache globally (1=enabled, 0=disabled) opcache.memory_consumption = 128 ; Amount of memory for opcode cache (in MB) opcache.interned_strings_buffer = 8; Amount of memory for interned strings (in MB) opcache.max_accelerated_files = 4000 ; Maximum number of files to cache opcache.revalidate_freq = 60 ; How often to check file timestamps for updates (in seconds). 0 = check on every request (slow), but good for development. opcache.fast_shutdown = 1 ; Enable fast shutdown opcache.enable_cli = 1 ; Enable Opcache for the PHP CLI (Command Line Interface)
1
2
3
4
5
6
7
8
9
10
11
12 - Salve o arquivo
opcache.ini
.
- Geralmente o arquivo já traz um modelo de configuração do Opcache, mas comentado. Procure a seção
- Reinicie o pacote PHP: No ServBay, localize o pacote PHP correspondente (no menu lateral, em Pacotes (Packages), selecione PHP) e clique em reiniciar.
Depois de editar o arquivo e reiniciar o PHP, o Opcache e suas configurações estarão ativos.
Como verificar se o Opcache foi carregado com sucesso
A maneira mais confiável de verificar se o Opcache está ativado é conferir as informações do PHP (phpinfo()
).
- Crie o arquivo
phpinfo.php
: Crie um novo arquivo PHP chamadophpinfo.php
na raiz do seu site configurado no ServBay. Por padrão, o diretório raiz é/Applications/ServBay/www/
. Você pode criar um subdiretório para testes, exemplo/Applications/ServBay/www/servbay.demo/
, e colocar o arquivophpinfo.php
nele. Conteúdo do arquivo:php<?php phpinfo(); ?>
1
2
3 - Acesse o
phpinfo.php
: Certifique-se de que seu servidor web (como Caddy ou Nginx) está rodando e configurado para apontar para seu diretório raiz ou subdiretório de teste. Acesse o arquivo pelo navegador.- Se colocou em
/Applications/ServBay/www/servbay.demo/
e configurou um domínioservbay.demo
para o site, acessehttp://servbay.demo/phpinfo.php
. - Se colocou no diretório raiz padrão
/Applications/ServBay/www/
e o site padrão do ServBay aponta para lá, acessehttp://localhost/phpinfo.php
ou pelo endereço local fornecido pelo ServBay.
- Se colocou em
- Procure por informações do Opcache: Role a página ou use a busca do navegador (
Cmd+F
ouCtrl+F
) e procure por "Opcache".- Se o módulo foi ativado corretamente, você verá uma seção chamada "Zend Opcache" com informações sobre a versão, status e parâmetros configurados.
- Se não encontrar a seção "Zend Opcache", o módulo não foi carregado. Revise os passos anteriores e confira as configurações.
Ilustração: Localizando o bloco de configuração Zend Opcache na página phpinfo
Explicação detalhada dos parâmetros de configuração do Opcache
O Opcache oferece diversas opções configuráveis, que podem ser ajustadas conforme as demandas de desenvolvimento e do projeto. Estes parâmetros são normalmente definidos em opcache.ini
. Abaixo, algumas das opções mais importantes e suas descrições:
ini
[Zend Opcache]
; Certifique-se de que a extensão está carregada
zend_extension = opcache.so
; Ativa/desativa o Opcache. 0 = desativado, 1 = ativado.
opcache.enable = 1
; Tamanho de memória compartilhada para armazenar o bytecode PHP compilado, em MB.
; Ajuste conforme o tamanho do projeto e a memória disponível. Projetos grandes requerem mais memória.
opcache.memory_consumption = 128
; Memória para armazenar strings internas (como nomes de classes e métodos), em MB.
; Para frameworks que usam muitas strings (como Symfony), pode ser necessário elevar este valor.
opcache.interned_strings_buffer = 8
; Número máximo de arquivos PHP que o Opcache pode cachear.
; Se seu projeto tem mais arquivos do que o valor definido, alguns não serão cacheados. Ajuste para mais do que o total de arquivos do projeto.
opcache.max_accelerated_files = 10000
; Frequência (em segundos) de verificação de alterações nos scripts.
; Em produção, normalmente valores mais altos (como 300 ou 600), ou até 0 (não checa, exige limpeza manual do cache).
; **Para desenvolvimento local, para que alterações sejam refletidas logo, ajuste para valores baixos, como 1 ou 2 segundos.** Se usar 0, será verificado a cada requisição (mais lento, porém útil ao desenvolver).
opcache.revalidate_freq = 2
; Habilita o encerramento rápido, agilizando a liberação de memória no final de cada requisição. Recomenda-se ativar.
opcache.fast_shutdown = 1
; Ativa o Opcache também para scripts rodando no CLI do PHP.
; Recomendado, pois aumenta a performance de comandos via terminal, Composer, testes, etc.
opcache.enable_cli = 1
; Permitir que a memória compartilhada ociosa seja liberada. Em alguns casos libera recursos, mas pode afetar levemente a performance. Mantenha padrão ou desative.
; opcache.enable_file_override = 0
; Se deve ignorar comentários ao cachear caminhos de arquivos. Pode economizar um pouco de memória, mas afeta ferramentas que usam comentários.
; opcache.save_comments = 1
; Se deve manter Docblocks nos caches. Necessário para ferramentas como PHPUnit, Doctrine. Recomenda-se ativar.
; opcache.load_comments = 1
; Nível de otimização. Quanto maior, mais otimizações, mas pode aumentar o tempo de compilação. O padrão geralmente já é suficiente.
; opcache.optimization_level = 0x7FFFBBFF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Lembre-se: ao alterar o opcache.ini
, sempre reinicie o pacote PHP correspondente para aplicar as mudanças.
Perguntas Frequentes (FAQ)
- Opcache vem ativado por padrão? Não. No ServBay, o módulo está pré-instalado, mas normalmente está desativado por padrão. Você precisa ativá-lo seguindo os passos acima.
- Ativar o Opcache impacta no meu fluxo de desenvolvimento? Sim, no sentido positivo: sua aplicação roda mais rápido. No desenvolvimento, ajuste o parâmetro
opcache.revalidate_freq
para 1 ou 2 (ou 0) para que as mudanças no código sejam refletidas imediatamente. Em produção, aumente esse valor ou utilize uma estratégia de limpeza manual do cache para maior performance. - Opcache faz cache de scripts PHP em CLI? Não por padrão. É preciso definir
opcache.enable_cli
como1
para habilitar o Opcache no CLI. Isso acelera comandos do Composer, testes unitários e outras operações de linha de comando. - Quanto de memória devo alocar para o Opcache? O valor de
opcache.memory_consumption
depende do tamanho e complexidade do seu projeto. Para a maioria dos projetos locais, 128MB ou 256MB bastam. Se seu projeto for muito grande ou aparecer alerta de memória cheia nophpinfo()
, aumente este valor. - Preciso fazer algo após editar o
opcache.ini
? Sim. Sempre reinicie o pacote PHP após editar arquivos.ini
para que as novas configurações tenham efeito.
Conclusão
Opcache é uma ferramenta poderosa e fácil de usar para otimização de desempenho em PHP. O ServBay oferece uma maneira amigável e intuitiva para ativar e gerenciar o Opcache — seja pela interface gráfica ou pelo ajuste direto do arquivo de configuração. Com alguns passos simples, você pode ativar o Opcache no ambiente do ServBay e aumentar significativamente a velocidade e a responsividade das suas aplicações PHP durante o desenvolvimento e testes. Ajustando os parâmetros de configuração, é possível obter ainda mais performance e adequar o cache às necessidades do seu projeto. Experimente ativar o Opcache no ServBay e sinta a diferença no desempenho das suas aplicações PHP!