Como resolver: PHP Fatal error: Allowed memory size of 33554432 bytes exhausted

19/07/2010

em Erros,Truques e Dicas

Esta mensagem de erro em um error.log poderá existir em um script PHP, quando a memória necessária para executar, seja superior ao valor por defeito em php.ini, de 8Mb. Não necessita de se preocupar, porque que este problema pode ser facilmente resolvido.

Para alterar a limitação da memória para a execução do script, poderá incluir a seguinte linha no topo do mesmo:

ini_set("memory_limit","16M");

O valor 16M, especifica o limite para 16Mb. Se não funcionar, vá aumentando o limite da memória até que o script possa ser executado devidamente.

Pode também alterar o valor permanentemente para todos os scripts executados no servidor, alterando a linha no ficheiro /etc/php.ini,

de:

memory_limit = 8M

para:

memory_limit = 16M

Tenha em atenção, que um tamanho excessivamente grande para um limite de memoria para execução de scripts é dificilmente um bom substituto para um bom código. Um script mal desenhado/ programado pode colocar em questão a utilização de memória no servidor, advindo daí diversos problemas de instabilidade, no caso em que o script seja executado muito frequentemente. No entanto, algumas aplicações podem requerer muita memória, tais como as de importação e processamento de ficheiros grandes.

Artigo anterior:

Próximo artigo: