PHP Fatal Error: Out of Memory

Você pode já ter experienciado um erro crítico no seu site, erro 500, em alguns casos você pode até mesmo ter enfrentado uma tela branca ao tentar acessar o painel administrativo do WordPress (wp-admin). Esse erro pode estar relacionado com o problema Out of Memory.

Todos esses casos podem estar relacionados com o seu WordPress precisando de mais limite de memória para execução do PHP do que ele está por padrão configurado. Nesse artigo vamos te explicar como identificar esse erro e como resolver esse problema.

A primeira coisa que você precisa saber é a diferença entre a função dos códigos wp_memory_limit e o wp_max_memory_limit, pois mais pra frente neste artigo eles serão necessários. Mas fique tranquilo, é bem simples para explicar: 

  • wp_memory_limit é responsável pelos processos e solicitações feitas dentro do seu site. Nesse caso, elementos configurados por plugins, o carregamento das páginas, temas e imagens são exemplos de coisas que utilizam o wp_memory_limit.

    É importante notar que por padrão o WordPress configura o wp_memory_limit para 40M. No início é o suficiente, mas em algum momento seu site pode requisitar um número maior do que esse.
  • wp_max_memory_limit fica responsável pela memória utilizada nas ações feitas no “backend” do seu site, sendo assim, todas as ações realizadas no painel administrativo do WordPress (wp-admin).

    Atualizações do WordPress, instalação e/ou atualização de plugins/temas, uploads realizados para o WordPress e até mesmo a parte de editar páginas/posts são exemplos de coisas que utilizam o wp_max_memory_limit.

    Por padrão o WordPress configura o wp_max_memory_limit para 256M, porém, note que essa configuração é diretamente influenciada por modificações realizadas no Select PHP Version, que é uma opção do cPanel para gerenciar as extensões e alguns limites da sua hospedagem.

    Nesse caso, se você configurar o “memory_limit” no seu seletor de PHP para 1G, o wp_max_memory_limit vai passar a ser 1G, à menos que você configure um valor diferente para ele dentro do arquivo wp-config.php.

Para identificar esse erro existe uma alternativa que pode ser bem simples, que é basicamente procurar pelo arquivo error_log dentro da pasta do seu site na sua hospedagem. Geralmente esse arquivo já é encontrado logo na pasta raiz do seu site, que normalmente é a public_html, porém, esse arquivo também pode ser encontrado no caminho public_html/wp-admin.

A dica que damos é que você sempre fique atento a data de modificação desse arquivo, pois se você estiver enfrentando o problema naquele momento, provavelmente ele vai estar com uma data de modificação bem próxima da atual.

Uma outra coisa é, sempre se atente ao tamanho desse arquivo, pois ele pode pesar bytes, KB, MB ou GB. Por isso, apenas abra esse arquivo diretamente no seu navegador se ele não for maior que 30MB, por exemplo, caso contrário seu computador pode acabar travando por causa do tanto de linhas que seu navegador vai precisar ler e armazenar em memória.

Por último, sempre busque as últimas linhas do arquivo, pois serão os registros de erros mais recentes. Você pode se deparar com linhas de código como a que pode ver abaixo:

Sendo constatado o problema, siga os passos abaixo para corrigi-lo, caso sua hospedagem não possua muitos sites:

  1. Primeiro, acesse o painel de controle de sua hospedagem (cPanel)
  2. Procure pela seção Software, e então clique em Select PHP Version
  3. Agora clique em Opções
  4. Agora role a página para baixo e na opção memory_limit, altere o valor para um mais alto que, porém, que esteja dentro dos limites do seu plano contratado

    Não é preciso salvar, logo após clicar no valor desejado, a alteração será realizada e salva automaticamente.

Após realizar essa alteração, verifique se o problema foi corrigido ao tentar realizar novamente as ações que estavam gerando o erro dentro do seu WordPress.

  1. Ainda dentro do cPanel, busque pela seção Arquivos e clique na opção Gerenciador de arquivos
  2. Agora busque a pasta do site que você está enfrentando esse problema, geralmente a pasta padrão do seu site principal é a public_html.
  3. Feito isso, procure pelo arquivo wp-config.php, e então clique com o botão direito, e após isso em edit.
  4. Após isso, role a página do arquivo e busque pela linha de código abaixo:

    /* Add any custom values between this line and the “stop editing” line. */

    Normalmente é após essa linha de código que colocamos códigos adicionais para a nossa aplicação WordPress.
  5. Após encontrar essa linha, depois dela você deve adicionar os seguintes códigos:

    define( 'WP_MEMORY_LIMIT', '256M' );
    define( 'WP_MAX_MEMORY_LIMIT', '512M' );


    Abaixo um exemplo de onde o código deve ser adicionado, e como ele ficaria:
    Comando que pode resolver o Out of memory
  6. Após adicionar essas linhas de código, salve as alterações no arquivo.

É importante dizer que não é recomendado colocar valores muito altos nessas configurações, pois isso pode forçar sua aplicação a utilizar muito mais memória do que ela realmente precisa, e isso acabar gerando outro problema.

Por isso, comece com números como 256M, se não corrigir o problema, tente 512M e por aí vai, nunca comece colocando números muito altos.

Já na opção WP_MAX_MEMORY_LIMIT, lembre que ela já é alterada junto com a configurada no seu Seletor de PHP, por isso, se você configurou no seletor algo como 2G, e no arquivo você configurou 512M, a configuração que vai prevalecer é a que foi feita dentro do arquivo wp-config.php.

Importante: Se no Seletor de PHP você selecionou 512M, mas no wp-config você configurou wp_max_memory_limit 1G, o WordPress vai fazer essa configuração, mas ele nunca vai conseguir usar os 1G, pois no cPanel você limitou a memória PHP em 512M.

É recomendado que o wp_max_memory_limit seja sempre maior que o wp_memory_limit. Por isso, você pode optar por uma configuração como:

define( 'WP_MAX_MEMORY_LIMIT', '1G' );

Em casos onde você tem mais de um site dentro de sua hospedagem, é essencial configurar um wp_max_memory_limit, isso porque caso não seja feito, todos os sites dentro de sua hospedagem poderão utilizar toda a memória do PHP sem controle, o que pode a vir a ser um problema.

Feito isso, a memória que o seu site WordPress utiliza está configurada. Se você quiser ter certeza que as configurações surtiram efeito, você pode ver no painel administrativo do WordPress, na opção Ferramentas e então Diagnóstico

Depois disso você deve clicar na opção Informação e então abrir a aba Constantes do WordPress. Aqui você poderá ver essas informações do seu WordPress.

Essas informações podem não ser atualizadas de forma imediata, por isso, se os números não forem alterados, tente sair do painel administrativo e fazer login novamente.

Você está precisando de ajuda?

Você está precisando de ajuda? Não se preocupe, saiba que sempre será um prazer te ajudar! Nossa equipe de suporte está disponível à você! Por isso, caso precise de auxilio, saiba que pode contar conosco! Envie-nos um ticket para que nosso time de especialista consiga lhe auxiliar da melhor maneira possível. Você precisa de ajuda de como abrir um ticket? Leia esse artigo.


Conseguimos te ajudar?
Loading spinner
Encontrou sua resposta?