O erro Allowed memory size ... exhausted ocorre quando um processo PHP tenta ultrapassar memory_limit. Aumentar o limite pode ser adequado, mas também pode esconder loop, consulta enorme, plugin defeituoso ou carga incompatível com o plano.
Identifique contexto
- URL, comando ou cron que falhou;
- limite e quantidade solicitada na mensagem;
- versão/SAPI PHP;
- alteração recente;
- uso total da conta/servidor;
- repetição e tamanho dos dados.
Verificar limite
php -r "echo ini_get('memory_limit'), PHP_EOL;"
php --iniCLI e site podem carregar configurações diferentes. Para o domínio, use MultiPHP INI Editor ou uma verificação temporária e protegida.
Alterar no cPanel
- Abra MultiPHP INI Editor.
- Selecione o domínio.
- Registre o valor atual.
- Defina aumento moderado compatível com o plano, por exemplo
256Mquando autorizado. - Salve e teste a operação.
- Monitore logs e reverta se não resolver.
Corrija a causa
Em WordPress, isole plugin/tema indicado no stack trace. Em código, processe dados em lotes, libere referências, evite carregar arquivo inteiro, pagine consultas e use streaming. Uma consulta sem filtro pode transformar milhões de linhas em objetos PHP.
Medir em vez de adivinhar
Registre memory_get_peak_usage(true) em ambiente de teste, use profiler quando disponível e compare entradas pequenas e grandes. Procure crescimento proporcional inesperado, coleções duplicadas e recursão. Logs devem registrar a operação, não dados pessoais ou segredos.
Frameworks e workers
Filas e comandos longos podem manter objetos entre tarefas. Configure reciclagem controlada dos workers, tamanho de lote e limites de tentativas. Limpar cache pode aliviar temporariamente, mas não substitui corrigir o processo que cresce.
Servidor e concorrência
memory_limit vale por processo; muitos workers podem consumir o limite simultaneamente. Não configure valor próximo da RAM total. Em PHP-FPM, ajuste workers, limites e memória do sistema de forma conjunta.
-1 em produção. Memória ilimitada pode causar OOM e derrubar outros serviços. Não aumente repetidamente sem analisar o stack trace.Veja versão PHP e diagnóstico do erro 500.
Recursos relacionados
Continue com materiais e serviços relacionados ao tema deste guia.