Dicas Gerais

Memória esgotada no PHP: como identificar e corrigir a causa

Relacione o erro de memória à operação executada e valide a correção sem recorrer a limites arbitrários. Veja os detalhes.

Revisão técnica: 08/09/2026. Texto atualizado; a data original de publicação foi preservada.

A mensagem “Allowed memory size exhausted” indica que o script atingiu o limite de memória do PHP ao tentar alocar mais espaço. O arquivo citado mostra onde a alocação falhou, mas nem sempre é o responsável pelo crescimento do consumo.

Identifique a operação que falha

Registre se o erro acontece ao abrir uma página, processar uma imagem, exportar dados ou executar uma tarefa. Compare entradas pequenas e grandes em ambiente de teste e confira alterações recentes. Um erro 500 sem essa mensagem não comprova falta de memória.

Consulte o memory_limit efetivo do ambiente web ou da tarefa executada. O PHP do terminal pode ser diferente. Não publique logs completos com caminhos internos, dados pessoais ou credenciais.

Reduza o volume processado por vez

Em código sob seu controle, examine operações que carregam resultados inteiros do banco ou arquivos completos na memória. Processamento em lotes, paginação e leitura incremental podem reduzir o pico, desde que a lógica mantenha consistência e trate falhas.

Uma imagem compactada pequena pode exigir muito mais memória ao ser decodificada. Confira dimensões e processamento realizado, não apenas o tamanho do arquivo enviado. No WordPress, veja o diagnóstico específico de memória.

Ajuste o limite com uma necessidade medida

Se a operação é legítima e o consumo esperado foi avaliado, combine um limite adequado com a hospedagem. Não existe um valor único que corrija todos os sites. Usar memória ilimitada pode deslocar a falha para os limites de recursos da conta ou do servidor.

Guarde a configuração anterior, altere o parâmetro no local reconhecido pelo PHP e repita o teste. O limite por execução não representa toda a RAM consumida por processos simultâneos, banco de dados e outros serviços.

Confirme a recuperação

Verifique se a operação termina com resultado correto, sem novos erros ou arquivos parciais. Monitore também o consumo durante uso simultâneo. Um teste isolado que passou não demonstra capacidade para qualquer volume de acessos.

Referência: memory_limit e diretivas do PHP.