Soluções

Allowed Memory Size Exhausted no WordPress? Como Resolver

Anúncios Google

Em alguma fase da vida de seu blog, você já deve ter se deparado com a pentelha advertência de “allowed memory size of X bytes exhausted” (algo como “tamanho permitido de memória de X bytes esgotado”). Ela ocorre porque o seu servidor oferece uma quantidade limitada de memória para o PHP ser executado, e se os processos estouram esse limite, alguns não são executados e o carregamento da página falha.

Erros em scripts, requisições pesadas, exagero de plugins e outros fatores podem levar à falta de memória, e se está acontecendo com muita frequência e você já otimizou tudo que podia, talvez seja hora de buscar mais memória. Isso pode ser conseguido, claro, trocando de plano de hospedagem (para um pacote que inclua mais memória) ou buscando o limite do que já lhe é oferecido.

Quanto Tenho de Memória?

Às vezes sua hospedagem diz que você tem 64M de memória, mas o erro aparece com tanta frequência que você duvida… Ela pode não estar sendo aproveitada por erro seu ou do servidor.

Para saber quanto tem de memória disponível, crie um arquivo com um título como “php-info.php”, com seguinte conteúdo no código:

<?php phpinfo(); ?>

…e mande para o servidor. Abra-o no seu navegador e verá em memory_limit quanto tem de fato. Isso é útil para quem usa hospedagens compartilhadas.

Informações do PHP INFO

Se você tem cPanel, também pode ver essa informação sobre memória em Software/Serviços > Configuração PHP.

Software/Serviços do cPanel

memory_limit no cPanel: só visualização, não pode ser editado
memory_limit no cPanel: só visualização, não pode ser editado

Uma instalação “limpa” do WordPress dificilmente vai precisar de mais que uns 32M de memória, mas aí vem os plugins, scripts e a coisa muda de figura. Em situações comuns, 64M devem dar conta de quase todos os blogs, mas outras vezes você pode precisar mesmo aumentar a memória.

E como aumentar?

Se sua hospedagem é compartilhada, você não vai conseguir aumentar (provavelmente não) sem falar com o suporte, e há uma grande chance deles não aumentarem se seu plano for dos mais baratos.

Em servidores VPS e dedicados é muito mais fácil, já que com mais “regalias” como acesso root é fácil alterar o valor do memory_limit no arquivo php.ini (que tem as configurações do PHP). Você também pode criar um php.ini, mas algumas hospedagens bloqueiam para impedir que os usuários abusem da memória.

Caso contrário, tem alguns “esquemas”, como editar o htaccess (um arquivo que permite alterar algumas configurações do servidor sem mexer nele) ou o wp.config (aquele arquivo do seu WordPress com configurações do blog).

Pelo php.ini

Pode ser editado diretamente ou através do WHM, entre outros métodos.

Direto no arquivo: localize o php.ini no seu servidor, deve estar (se liberado pela hospedagem) acessível na pasta raíz dele. Procure pela linha…

Linha do memory_limit no php.ini

…e altere o valor para o necessário. Se estiver em 32M, teste 64M; tente carregar o blog e se o problema não for resolvido, aumente para 96M ou 128M. Não aumente demais sem necessidade.

Pelo WHM: o painel do Web Host Manager só é disponibilizado para quem tem hospedagens VPS ou dedicadas com cPanel. Acesse o painel e siga ao PHP Configuration Editor. Aumente o valor para o que precisar e clique em Save.

Aumentando o memory_limit pelo WHM

Pelo htaccess

Só funciona em servidores Linux/Unix (não para servidores rodando Windows). Localize o arquivo .htaccess (o nome é assim mesmo, um ponto e a terminação, sem nada antes do ponto) na raíz do servidor – se não existir, crie um. Insira nele o seguinte comando:

php_value memory_limit 64M;

Isso deve mudar – se a hospedagem permitir – o limite de memória para 64M. Como antes, não aumente aleatoriamente; faça testes e deixe o que precisar, sob risco de causar perda de rendimento geral no servidor se aumentar demais.

Pelo wp.config

Só para usuários de WordPress (que por sinal é o tema central aqui do Blog Aprendiz). O WordPress usa por padrão 32M, então para elevar o valor adicione isso ao seu arquivo wp.config (fica na raíz da instalação do blog):

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

Lembre-se que isso não faz mágica: ele vai apenas tentar “separar” uma fatia maior da memória para os processos, mas se o servidor oferece só 32M, não adianta colocar 64M porque não há disponível. Se for o caso, só apelando para as técnicas anteriores.

Em Scripts Individuais

Se um script em especial precisa de mais memória e você não quer elevar o limite em tudo, mas só pra ele, pode adicionar o seguinte no seu início:

<?php ini_set("memory_limit","64M"); ?>

Assim, quando aquele script for iniciado, o limite da memória será definido em 64M.

Se a Hospedagem “Regula” a Memória…

…você pode entrar em contato com eles e pedir mais – o que não deve adiantar, mas não custa tentar. O mais provável é que eles queiram te vender um plano de hospedagem mais caro e com mais recursos.

Lembrando sempre que se seu blog cresceu muito e requer mais recursos, não adianta tentar tirar leite de pedra (ou melhor, tirar muita coisa de um servidor barato): considere partir para um VPS ou dedicado.

Author

Fundador do Tutoriart em 2010, é ex-instrutor de Photoshop, design web e gráfico. Em quase uma década de redação online, tem cerca de 1500 artigos publicados. Gerencia também o Memória BIT.

Write A Comment

Pin