Guia de tecnologias

Como aumentar o limite de memória do PHP

5 min read PHP Atualizado 09 Oct 2025
Aumentar limite de memória do PHP
Aumentar limite de memória do PHP

Por que isso acontece

O erro “PHP Fatal error: Out of memory” aparece quando um script PHP tenta alocar mais memória do que o limite definido pelo PHP. Isso pode ser causado por operações legítimas que precisam de mais memória (processamento de imagens, importação de grandes arquivos, manipulação de arrays grandes) ou por bugs (loops infinitos, vazamentos de memória em extensões, plugins defeituosos).

Definição rápida: memory_limit é a configuração do PHP que define a quantidade máxima de memória que um único processo PHP pode usar.

Quatro maneiras de aumentar o limite (passo a passo)

  1. Alterar o php.ini
  • Localize o php.ini usado pelo PHP criando um arquivo no root do servidor, por exemplo check.php, com este conteúdo:
  • Acesse esse arquivo no navegador e procure por “Loaded Configuration File” para ver o caminho do php.ini (normalmente em /usr/local/lib/php.ini ou /etc/php/7.x/apache2/php.ini, dependendo do sistema).
  • Abra o php.ini em um editor e altere a diretiva memory_limit. Exemplos de valores comuns: 8M, 16M, 32M, 64M.

Exemplo:

memory_limit = 32M
  • Reinicie o servidor web/PHP (por exemplo service apache2 restart ou reinicie o PHP-FPM) para aplicar.
  1. Usar ini_set() dentro do script

Se você não tem acesso ao php.ini, insira no topo do script PHP que está consumindo memória:

ini_set('memory_limit', '32M');

Coloque essa linha antes do processamento que demanda memória. Nem sempre funciona em ambientes onde ini_set está restrito.

  1. Ajustar .htaccess (quando o servidor usa mod_php)

No diretório raiz do projeto (por exemplo o diretório público do site), adicione:

php_value memory_limit 32M

Observação: isso só funciona se o PHP estiver rodando como módulo do Apache (mod_php). Em PHP-FPM ou CGI, essa opção pode causar erro 500.

  1. Para WordPress: editar wp-config.php

No WordPress, você pode definir o limite no wp-config.php:

define('WP_MEMORY_LIMIT', '32M');

Isso pede ao WordPress que solicite mais memória ao PHP — o resultado depende da configuração do servidor.

Dicas de diagnóstico: como descobrir qual script precisa de memória

  • Habilite logs de erro do PHP e leia o stack trace. Mensagens de “out of memory” geralmente mostram o arquivo e linha.
  • Use memory_get_usage() e memory_get_peak_usage() em pontos-chave do código para medir consumo.

Exemplo básico:

error_log('Uso atual: ' . memory_get_usage());
error_log('Pico: ' . memory_get_peak_usage());
  • Em aplicações maiores, use um profiler (Xdebug, Blackfire, Tideways, New Relic) para traçar consumo por função.
  • Em WordPress: ative WP_DEBUG e SAVEQUERIES, desative plugins/temas temporariamente para isolar o causador.

Quando aumentar memória não resolve (contrapontos)

  • Vazamento de memória em uma extensão nativa ou bug de código: aumentar o limite apenas mascara o problema.
  • Loop infinito / uso exponencial de memória: a solução é corrigir o algoritmo, não só aumentar o limite.
  • Restrições do host: em ambientes compartilhados você pode não conseguir ultrapassar certo teto; contate o provedor.

Playbook rápido para resolver o erro “Out of memory”

  1. Reinicie o servidor web/PHP (solução imediata para liberar memória).
  2. Verifique logs para identificar arquivo/linha.
  3. Aumente temporariamente memory_limit para confirmar que o problema é falta de memória.
  4. Execute profiling para achar a raiz: funções, plugins, operações de I/O.
  5. Corrija o código problemático ou otimize (streams, chunked processing, lazy loading).
  6. Se necessário, aumente permanentemente o limite e documente a razão.
  7. Se não for possível, contate o host.

Checklist por função

  • Desenvolvedor:

    • Inserir memory_get_peak_usage() nos pontos suspeitos.
    • Rodar profiler localmente.
    • Subsituir cargas de memória por processamento em blocos.
  • Administrador de sistema:

    • Validar php.ini e valores aplicados por SAPI (mod_php vs PHP-FPM).
    • Reiniciar serviços e revisar limites do sistema (ulimit, cgroups).
  • Suporte/Host:

    • Informar limites máximos por conta/plano.
    • Fornecer logs e sugestões de hard limit se necessário.

Mini-metodologia para decidir valor de memory_limit

  1. Comece com um aumento moderado (por exemplo, de 8M → 16M ou 32M).
  2. Reproduza o erro: se desaparecer, monitore por 24–72 horas.
  3. Se voltar a ocorrer, investigue perfis e corrija código antes de subir mais.
  4. Documente mudanças e rationale.

Decisão rápida (fluxograma)

flowchart TD
  A[Erro Out of memory] --> B{Reiniciou serviços?}
  B -- Não --> C[Reinicie Apache/PHP-FPM]
  B -- Sim --> D{Log aponta arquivo/linha?}
  D -- Não --> E[Ative logs e PHP info]
  D -- Sim --> F{Problema é bug ou necessidade legítima?}
  F -- Bug --> G[Corrigir código/atualizar extensão]
  F -- Legitimo --> H[Aumentar memory_limit 'php.ini/ini_set/.htaccess/wp-config']
  H --> I[Monitorar]
  G --> I
  E --> I

Segurança e compatibilidade

  • Evite definir valores absurdamente altos sem entender a causa — isso pode impactar outros processos no servidor.
  • Em ambientes com limites de container (Docker, cgroups), aumentos no memory_limit do PHP não superam os limites do contêiner.

Perguntas frequentes

Q: Devo sempre aumentar o memory_limit quando aparecer o erro?

R: Não automaticamente. Use o aumento como diagnóstico e correção temporária; investigue a causa raiz para evitar que o problema retorne.

Q: O que é melhor: alterar php.ini ou usar ini_set()?

R: php.ini é a solução mais consistente e global; ini_set() é útil para corrigir um script específico quando você não tem acesso ao php.ini.

Resumo

  • Reinicie serviços para resolução imediata.
  • Identifique o php.ini com phpinfo() e ajuste memory_limit quando apropriado.
  • Use profiling e logs para encontrar scripts que consomem memória.
  • Corrija bugs e otimize antes de aumentar indefinidamente o limite.

Importante: Se você estiver em hospedagem compartilhada e não conseguir alterar o limite, contacte o suporte do provedor.

Autor
Edição

Materiais semelhantes

Adicionar sites à lista branca do Flash no Windows RT
Tutoriais

Adicionar sites à lista branca do Flash no Windows RT

Photoshop CS5 no Ubuntu 10.10 — Guia prático
Linux

Photoshop CS5 no Ubuntu 10.10 — Guia prático

Baixar filmes e séries da Netflix para ver offline
Streaming

Baixar filmes e séries da Netflix para ver offline

Corrigir: Firefox já em execução mas não responde
Suporte Técnico

Corrigir: Firefox já em execução mas não responde

Tim Cook: programar é melhor que inglês
Educação e Tecnologia

Tim Cook: programar é melhor que inglês

Aumentar velocidade de download no Windows 10
Tutoriais

Aumentar velocidade de download no Windows 10