Para eliminar um aviso de limite de memória PHP do Nextcloud, defina o valor memory_limitpara pelo 512Mmenos 512 MB na configuração PHP usada pelo servidor web e, em seguida, reinicie ou recarregue o serviço PHP relevante. O Manual de Administração da versão estável atual do Nextcloud recomenda pelo menos 512 MB para essa configuração do PHP. O motivo mais comum para um aviso persistir após a edição de um arquivo é que o servidor web está usando uma configuração PHP diferente daquela instalada pela linha de comando.
Escolha o procedimento que melhor se adapta à sua implementação: Apache com mod_php, Apache ou Nginx com PHP-FPM, um contêiner ou um pacote Nextcloud gerenciado. Não edite o arquivo `.random` do host php.inie assuma que todas as implementações o utilizam. Verifique o resultado na página de Visão Geral do Administrador do Nextcloud, que reflete a configuração da aplicação web.
O que significa o aviso?
O parâmetro `php_requirements.txt` memory_limitrepresenta a quantidade máxima de memória que um único script PHP pode alocar. Não se trata da quantidade total de RAM reservada para o Nextcloud e não aumenta a memória física disponível para o servidor. O manual do Nextcloud recomenda configurar pelo menos 512 MB para esse parâmetro. Os requisitos de sistema, por sua vez, explicam que as necessidades reais de memória do servidor variam de acordo com o número de usuários, aplicativos, arquivos e atividades; recomendam pelo menos 512 MB de RAM por processo PHP, com um mínimo de 128 MB.
Aumentar o limite do PHP pode resolver um aviso de configuração e liberar espaço para solicitações que consomem muita memória. No entanto, isso não adiciona RAM a um host com recursos insuficientes, não corrige vazamentos de memória e não garante que todos os aplicativos serão concluídos com sucesso. Se o servidor já estiver sob pressão de memória, um limite maior por solicitação pode aumentar o risco de que processos PHP simultâneos esgotem a RAM do sistema.
Qual configuração do PHP você deve editar?
Primeiro, identifique como o PHP executa o Nextcloud. Uma verificação no terminal, como a php --inique mostra a configuração da linha de comando (CLI), pode ser útil. As requisições web do Nextcloud podem usar um módulo Apache separado ou um serviço PHP-FPM com uma php.iniconfiguração diferente ou um pool de requisições. O Nextcloud observa especificamente que o PHP da web e o PHP da CLI podem usar arquivos de configuração diferentes.
Em sistemas derivados do Debian, os locais típicos incluem /etc/php/8.x/apache2/php.inio diretório do módulo PHP do Apache e /etc/php/8.x/fpm/php.inio diretório do PHP-FPM. A versão real do PHP e os nomes dos diretórios variam. Outras distribuições geralmente usam caminhos diferentes, como um diretório compartilhado /etc/php.ini. Considere estes apenas como exemplos; use seu gerenciador de pacotes, configuração de serviços e ambiente de execução do PHP para localizar o arquivo ativo.
Para inspecionar a configuração da CLI, execute:
php --ini
php -i | grep -i '^memory_limit'
Esses comandos são úteis para tarefas agendadas que invocam o PHP a partir da linha de comando, mas não comprovam que o processo do Nextcloud visível no navegador utilize o mesmo valor. Evite deixar uma phpinfo()página pública no servidor: isso pode revelar caminhos, módulos e detalhes de execução.
Como configurar o limite para o Apache ou PHP-FPM?
Faça backup do arquivo de configuração ativo antes de alterá-lo. No arquivo correto php.ini, encontre a memory_limitlinha existente e defina-a para o 512Mvalor correto ou um valor maior, selecionado de acordo com sua carga de trabalho:
memory_limit = 512M
Use uma configuração ativa em vez de adicionar linhas duplicadas no final de vários arquivos. Um pool PHP-FPM também pode definir valores para seus workers; portanto, verifique a configuração do pool se o valor php.ininão surtir efeito. Algumas implementações do PHP suportam uma configuração por diretório .user.ini; se essa configuração está ativa depende da configuração do servidor e deve ser confirmada com o administrador.
Apache usando mod_php
Edite o arquivo php.iniusado pelo Apache, salve-o e reinicie o Apache para que o módulo recarregue suas configurações. Os nomes dos serviços variam. No Debian ou Ubuntu, o serviço geralmente é `service` apache2; em sistemas da família RHEL, geralmente é `service` httpd. Use o nome do serviço para o seu sistema operacional e procedimentos de manutenção.
sudo systemctl restart apache2
Substitua apache2se sua distribuição usar um nome de unidade diferente. Se o Nextcloud for servido por meio do PHP-FPM em vez do mod_php, reiniciar o Apache por si só não recarregará os processos PHP.
Apache ou Nginx usando PHP-FPM
Edite a configuração do PHP-FPM que está sendo usada pelo site. Depois de salvar a alteração, reinicie ou recarregue o serviço PHP-FPM correspondente. A unidade de configuração pode incluir a versão do PHP, por exemplo php8.3-fpm, `php.fpm`, ou usar outro nome específico do fornecedor.
sudo systemctl restart php8.3-fpm
Use o nome de serviço correto para a versão do PHP instalada. O Nginx encaminha as requisições do PHP para o FPM, portanto, alterar as configurações do PHP geralmente exige que a alteração seja aplicada ao FPM; reiniciar o Nginx sozinho não recarrega o limite de memória do PHP. Se a configuração do pool PHP-FPM sobrescrever o limite de memória memory_limit, ajuste a configuração do pool ou remova a sobrescrita e reinicie o pool.
E se o Nextcloud for executado em Docker, AIO, Snap ou outro pacote?
Utilize o mecanismo de configuração para esse método de instalação. Editar os arquivos PHP do host geralmente não altera o ambiente de execução do PHP dentro de um contêiner ou pacote isolado. A imagem oficial do Docker do Nextcloud documenta a PHP_MEMORY_LIMITvariável de ambiente, com um valor padrão de `$PATH` 512Mna documentação da imagem atual. Defina-a no arquivo Compose ou na configuração do contêiner e, em seguida, recrie ou reinicie o contêiner do aplicativo de acordo com o procedimento de implantação.
environment:
PHP_MEMORY_LIMIT: 512M
Não copie essa configuração para todos os tipos de instalação. O manual do Nextcloud informa que ambientes prontos para uso, como AIO, Snap, NCP e Community Docker, possuem PHP pré-configurado e direciona os administradores às instruções específicas de cada pacote para personalização. Para essas configurações, utilize a interface ou a documentação compatível com o pacote. Montagens de volumes persistentes e configurações geradas automaticamente também podem sobrescrever uma edição manual única.
Como posso confirmar que o aviso foi corrigido?
- Aplique a alteração à configuração PHP voltada para a web e reinicie ou recarregue o serviço web/PHP relevante.
- Inicie sessão no Nextcloud como administrador e acesse Configurações > Administração > Visão geral .
- Atualize a página e revise os avisos de configuração. Confirme se o aviso de limite de memória do PHP desapareceu.
- Execute uma operação representativa que tenha acionado o aviso anteriormente, como a tarefa do aplicativo afetado, e revise os logs do Nextcloud e do PHP em busca de mensagens de esgotamento de memória.
Se você também executa tarefas em segundo plano do Nextcloud por meio do cron do sistema, verifique a configuração do PHP na linha de comando separadamente. O aviso exibido na web pode ser removido enquanto as tarefas da linha de comando ainda usam um limite inferior. Confirme o valor da linha de comando com `php -v` php --inie php -i`php -v` para o mesmo binário PHP usado pelo comando cron.
Quando você deve aumentar o valor acima de 512 milhões?
Aumente o limite somente quando o aviso desaparecer, mas uma carga de trabalho documentada ainda atingir o limite do PHP, ou quando as diretrizes de suporte de um aplicativo exigirem mais memória. Verifique primeiro a memória real do servidor, a quantidade de processos do PHP-FPM, a memória do banco de dados e outros serviços. Como o PHP aplica o limite por script, vários processos ocupados podem usar uma quantidade substancial de memória simultaneamente. Defina um limite mensurável que se adeque ao orçamento de memória do host, em vez de usar o limite padrão -1, que o PHP documenta como não tendo limite de memória.
Se o aviso desaparecer, mas o servidor ainda estiver lento ou processos estiverem sendo encerrados abruptamente, verifique o uso de memória e swap do sistema, os logs do PHP-FPM e os logs do Nextcloud. Considere se algum aplicativo ou requisição específica está consumindo memória em excesso. Um cache de memória, como o APCu ou o Redis, resolve problemas de cache e desempenho; ele não substitui a configuração do PHP memory_limit. Altere um fator por vez para identificar se houve melhora no desempenho.
Verificações rápidas por sintoma
- O aviso permanece mesmo após editar o php.ini: verifique se você editou o arquivo da CLI em vez do arquivo do Apache/FPM, ou se alguma configuração do pool está sobrescrevendo o aviso.
- O aviso desaparece, mas a tarefa cron ainda falha: verifique o binário PHP da CLI e sua configuração separada.
- O servidor web retorna um erro após a reinicialização: verifique o status e os logs do servidor web ou do serviço PHP-FPM e restaure o backup se a alteração de configuração causou uma falha na inicialização.
- O aviso desaparece, mas o host fica sem RAM: reduza a concorrência, adicione memória ou identifique o processo que está usando memória antes de aumentar ainda mais o limite do PHP.
- Se você estiver usando um contêiner ou pacote pronto para uso, altere a configuração PHP compatível com o pacote em vez do arquivo php.ini do host.
Referências oficiais