Para eliminar o aviso do Nextcloud "O OPcache do PHP não está configurado corretamente", abra o aviso completo em Configurações de administração → Visão geral e aumente apenas o limite de OPcache identificado na configuração do PHP usada pelo servidor web. Reinicie o serviço PHP correspondente e verifique o aviso novamente; editar apenas a configuração do PHP pela linha de comando pode não alterar o que o Nextcloud utiliza.
Por exemplo, se o Nextcloud reportar que o buffer de strings internas está quase cheio, aumentar opcache.interned_strings_bufferde 16 para 32 MB é um ajuste inicial razoável quando o servidor tiver RAM suficiente. Um aviso diferente sobre scripts em cache ou memória compartilhada requer uma configuração diferente.
Por que o Nextcloud exibe este aviso do OPcache?
O OPcache armazena bytecode PHP compilado em memória compartilhada, reduzindo a quantidade de compilação necessária para requisições web repetidas. Ele também reserva espaço para strings internadas, o que permite que o PHP reutilize strings idênticas. Essas capacidades são limites independentes, portanto, expandir uma não necessariamente resolve um alerta sobre a outra.
De acordo com a documentação de otimização do servidor Nextcloud 35 , o painel de administração emite um aviso quando o limite de tamanho do OPcache excede 90% da sua capacidade alocada. A mensagem pode mencionar especificamente um buffer de strings internadas quase cheio, um número limitado de scripts em cache ou memória compartilhada insuficiente. Esse detalhe determina a solução.
O Nextcloud também exige opcache.save_comments=1isso, pois depende da preservação dos comentários no código PHP. Portanto, uma extensão OPcache desativada ou a desativação da preservação de comentários é um problema de configuração, e não apenas uma questão de dimensionamento do cache.
1. Identifique o cenário que precisa de atenção.
Faça login como administrador, acesse Configurações de administração → Visão geral e leia o aviso completo do OPcache. Anote a diretiva exata, se houver. Não presuma que todo aviso do OPcache signifique que o buffer de strings internadas está com tamanho insuficiente.
- O buffer de strings internadas está quase cheio: verifique
opcache.interned_strings_buffer.
- Memória compartilhada do OPcache quase cheia: verifique
opcache.memory_consumption.
- Scripts ou chaves em cache próximos do limite: verifique
opcache.max_accelerated_files.
- OPcache desativado ou comentários não preservados: verifique
opcache.enablee opcache.save_comments.
2. Encontre a configuração PHP que serve o Nextcloud.
Em servidores Debian ou Ubuntu que utilizam PHP-FPM, a configuração do PHP geralmente é organizada pela versão do PHP e pela API do servidor. Por exemplo, o PHP 8.3 FPM pode ler arquivos em /etc/php/8.3/fpm/conf.d/, enquanto o módulo PHP do Apache pode usar /etc/php/8.3/apache2/conf.d/.
Para ver quais serviços PHP-FPM existem em um host systemd, execute:
systemctl list-units --type=service 'php*-fpm.service'
Verifique os arquivos OPcache aplicáveis, substituindo-os pela versão do PHP instalada:
sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/
Caso nenhum arquivo seja encontrado, verifique o diretório principal php.inie as convenções de empacotamento da sua distribuição. O comando php --inié útil para identificar a configuração do PHP via linha de comando , mas a linha de comando e o PHP-FPM podem carregar configurações diferentes.
Para Docker ou Nextcloud All-in-One, examine a configuração do PHP dentro do contêiner Nextcloud e use um método de configuração persistente compatível. Editar /etc/phparquivos de hosts geralmente não configura o PHP dentro de um contêiner; editar um arquivo de contêiner gerado também pode ser desfeito por recriação.
3. Aumente o limite relatado sem alterar configurações não relacionadas.
Faça um backup do arquivo de configuração relevante antes de realizar qualquer alteração. Em uma instalação convencional do PHP-FPM em Debian/Ubuntu, uma abordagem viável é adicionar um arquivo de configuração local no conf.ddiretório FPM da versão do PHP. Confirme se este diretório está sendo carregado pela sua instalação do PHP-FPM antes de prosseguir.
Para o exemplo de buffer de strings internadas , crie ou edite uma sobrescrita local, como /etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini:
; Example for a warning about interned strings
opcache.interned_strings_buffer=32
Aqui, 32significa 32 MB, não 32 bytes. Ajuste o valor final de acordo com o uso real e a RAM disponível.
Se o aviso mencionar um limite diferente, use o exemplo correspondente em vez de somar os três indiscriminadamente:
; Example only: larger shared bytecode cache
opcache.memory_consumption=256
; Example only: allow more cached script keys
opcache.max_accelerated_files=20000
Os valores para opcache.memory_consumptionsão em megabytes, enquanto opcache.max_accelerated_filesespecifica um limite de chave de script. A referência oficial de configuração do PHP OPcache explica suas unidades, valores padrão e como alterá-los.
Quando o aviso apontar para OPcache desativado ou comentários ausentes em vez de capacidade, verifique estas configurações:
opcache.enable=1
opcache.save_comments=1
Não desligue opcache.validate_timestampsnem prolongue significativamente a duração da sessão opcache.revalidate_freqapenas para ignorar este aviso. O Nextcloud alerta que a revalidação tardia do cache pode impedir que as alterações de configuração e atualização entrem em vigor imediatamente.
4. Aplique a nova configuração
Para um servidor de exemplo executando PHP 8.3 através do PHP-FPM, primeiro valide a configuração do serviço e, em seguida, reinicie o serviço correspondente durante uma breve janela de manutenção:
sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm
Substitua 8.3pela versão do PHP-FPM instalada e confirme o nome do executável e do serviço antes de executar qualquer comando. Uma reinicialização interrompe as solicitações processadas por esse pool. No Apache com mod_php, o serviço relevante é o Apache, e não o PHP-FPM; para contêineres, aplique o procedimento de reinicialização ou recriação documentado da sua implantação, preservando a configuração.
Caso o serviço não reinicie, restaure o backup da sua configuração e verifique o log de erros do PHP-FPM ou do servidor web.
5. Se o aviso persistir, verifique as configurações efetivas do PHP na web.
Primeiro, recarregue as configurações de Administração → Visão geral após a reinicialização dos processos PHP. Se o aviso persistir, verifique se a diretiva alterada foi realmente carregada pelo ambiente de execução PHP da web e não apenas pela linha de comando. Verifique se há algum arquivo de carregamento posterior .iniou alguma configuração do pool PHP-FPM que esteja sobrescrevendo o valor alterado.
Em um servidor que você controla, é possível inspecionar temporariamente os valores PHP da web usando um endpoint de diagnóstico com acesso restrito e ini_get()a função do PHP. Nunca deixe uma phpinfo()página pública online: isso pode revelar o ambiente, caminhos, módulos e outros detalhes de configuração sensíveis. Remova qualquer endpoint de diagnóstico imediatamente após a verificação.
Para um alerta de dimensionamento persistente, inspecione o uso real do OPcache em condições normais de tráfego, em vez de dobrar os valores repetidamente. A documentação do PHPopcache_get_status() descreve as estatísticas de memória, strings internadas e scripts em cache disponíveis para um processo PHP em execução.
A imagem oficial do Docker do Nextcloud e as instalações All-in-One possuem suas próprias configurações padrão do PHP; não assuma que as edições feitas no nível do host ou os valores recomendados por outra instalação serão mantidos. Consulte o repositório oficial do Docker do Nextcloud ou o repositório oficial do All-in-One para obter o modelo de configuração que corresponde à sua instalação.
Verifique se a correção funcionou.
Retorne às configurações de Administração → Visão geral e confirme se o aviso específico do OPcache desapareceu. Abra e recarregue algumas páginas do Nextcloud para garantir que o aplicativo ainda responda normalmente. Se o aviso retornar após o uso regular, verifique novamente o limite medido e a configuração efetiva do PHP na web; o objetivo é deixar margem suficiente sem alocar memória desnecessária para o OPcache.