Seus plugins não estão funcionando. Seu site não está carregando. Você continua vendo o erro “Tamanho de memória permitido esgotado” e ele continua dizendo para aumentar seu limite de memória PHP. O que é isso e como você o resolve?

O limite de memória PHP existe para impedir que os recursos de RAM-hogging derrubem seu site. Mas às vezes também pode causar problemas, como quando você instala um plugin que precisa de um pouco mais de energia e acaba cortando o acesso ao seu site.

Quando você está encontrando a tela branca da morte por falta de memória, você precisa consertar este problema imediatamente. Vamos entrar no que é o limite de memória PHP e como resolvê-lo se você atingir o limite de recursos.

O que é limite de memória PHP?

O limite de memória PHP define a quantidade máxima de memória que qualquer script em seu website pode usar. Mas o que isso significa exatamente?

Seu site é alimentado por servidores, que são apenas computadores especializados usados para manter o backend de um site em funcionamento. Como computadores normais, eles usam componentes como processadores, armazenamento e RAM — também conhecidos como memória.

A RAM é uma das partes mais importantes de um servidor. Cada programa e aplicação absorve um pouco de memória. Quanto mais intensivo o programa, mais memória ele ocupa. Quando você ficar sem memória, seu site ficará lento ou até mesmo se recusará a carregar.

Aplicações Web, tais como plugins WordPress, são uma das muitas coisas que podem ocupar memória em seu servidor. Normalmente, estas aplicações ocupam um espaço muito pequeno, e você nunca encontrará nenhum problema a menos que seu host lhe tenha dado muito pouca memória para trabalhar.

Mas também há uma dura limitação na memória que qualquer script de aplicação PHP pode ocupar em seu servidor. Quando um destes scripts ultrapassa o limite, é quando você começará a encontrar problemas.

Você verá uma tela branca com um erro, e pode até mesmo impedir o acesso a todo o seu site.

Por que existe um limite de memória?

Imagine que algo corre mal em seu servidor. Talvez um programa fique preso em um loop infinito e apenas continue ocupando mais e mais memória, ou um atacante o engane para instalar algo que executa um script malicioso para monopolizar todos os seus recursos.

Quando os processos PHP ficam fora de controle, o limite de memória serve para colocar um fim difícil nisso antes que eles possam travar todo o seu servidor ou consumir todos os recursos alocados durante o mês.

A maioria dos scripts PHP legítimos são muito pequenos. Cada script individual deve ocupar apenas uma pequena quantidade de RAM, a menos que você tenha um programa incomum que precise de mais recursos em um script do que a maioria dos programas jamais tomará como um todo. Estes tipos de plugins certamente existem, mas eles são raros.

Se você estiver ficando sem memória, há uma chance decente de haver um programa PHP quebrado ou malicioso, e assim o erro de limite de memória entra em ação.

Mas às vezes você realmente está usando um grande plugin que precisa de memória extra. Alguns web hosts também definem o limite de memória PHP muito baixo, o que pode fazer com que o erro apareça mesmo quando você não está instalando um aplicativo de power-hogging excepcional.

De qualquer forma, você encontrará rapidamente o erro de memória esgotada.

O Erro de Memória Esgotada

Assim, você encontrou o erro de memória esgotada. Você provavelmente está encontrando uma tela branca com uma mensagem de erro, seja em todo o seu site ou ao executar certas funções, como o envio de um formulário.

Erro de limite de memória esgotado como aparece no WordPress
Erro de limite de memória esgotado como aparece no WordPress

Este é um problema sério, especialmente quando está afetando todo o seu website. Cada hora que passa é um grande número de visitantes perdidos.

O culpado é provavelmente um plugin muito grande ou mal configurado. Como os plugins do WordPress são codificados em PHP, eles estão sujeitos ao limite de memória PHP.

Você pode encontrar o plugin que causa o problema desativando seus plugins um a um até que o acesso ao seu site seja recuperado. Uma vez identificado, verifique a documentação e veja se ela diz quanta memória precisa para rodar.

Você pode querer enviar um bilhete para o desenvolvedor do plugin se não houver nenhuma indicação de que ele seja um plugin excepcionalmente poderoso, pois ele pode ser um buggy. Lembre-se, o limite de memória PHP afeta apenas um único script, não o plugin como um todo. Portanto, há uma boa chance de um script ficar preso em um loop infinito ou em alguma outra falha.

O assunto também pode ser sobre você. Talvez seu limite de memória esteja muito baixo para que apenas o mais pequeno dos plugins possa funcionar corretamente. Ou talvez você esteja tentando instalar um plugin que requer que você levante o limite mais alto do que o normal.

Em ambos os casos, você deve tentar aumentar o limite de memória PHP. Vamos mostrar a você como fazer isso agora.

Como aumentar o limite de memória PHP no WordPress

Antes de fazer qualquer coisa, há uma maneira fácil de verificar qual é o seu limite atual de memória PHP sem ter que escavar nenhum arquivo. Se você estiver executando o WordPress 5.2 ou posterior, vá para Ferramentas > Saúde do site em seu backend.

Instale o plug-in do Health Check & Troubleshooting se você não o vir.

Visualizando as informações de saúde do site no WordPress
Visualizando as informações de saúde do site no WordPress

Na aba Info, você verá seu limite de memória PHP. Se já estiver bem alto, um de seus plugins pode estar quebrado.

Entretanto, se você achar muito baixo, você precisará aumentá-lo editando seu

However, if you find it’s very low, you’ll need to increase it by editing your arquivo wp-config.php.

Isto não resolverá sempre o problema. Em última análise, o limite de memória PHP é definido por seu anfitrião web. Às vezes, seu site está configurado para usar menos recursos do que seu host oferece, e ajustar seus arquivos pode consertar isso. Mas se o limite de código rígido deles for muito baixo, você não será capaz de realmente aumentá-lo não importa o quanto você defina manualmente o número.

Mas vale a pena tentar, então vamos editar esse arquivo agora.

Qual é o limite de memória PHP da Kinsta?

Os usuários de todos os planos Kinsta desfrutam de um limite padrão de memória PHP de 256 MB. Isto deve ser mais do que suficiente para 99% de todos os plugins WordPress e na verdade é muito mais do que a maioria dos plugins jamais deveria tomar.

Se você estiver configurado com a hospedagem Kinsta e seu site estiver configurado corretamente, você nunca deve encontrar um erro de limite de memória. O limite máximo é normalmente definido automaticamente nos arquivos sem qualquer intervenção de sua parte.

Talvez ainda valha a pena passar e certificar-se de que não tenha sido ajustado inadvertidamente muito baixo dentro das configurações do WordPress. É possível que algo tenha alterado o número e diminuído o número de recursos aos quais você tem acesso.

Se você ainda estiver tendo problemas, pode sempre contatar com o suporte da Kinsta e pedir ajuda para resolver o problema. Podemos ajudar a identificar um arquivo mal-configurado que você pode ter perdido.

Como mudar o limite de memória PHP via FTP

Para editar o arquivo wp-config.php, você precisará acessar seu site com FTP ou SFTP. Isto permite que você edite arquivos internos sensíveis que afetam a forma como seu site funciona.

Você estará mudando apenas uma linha, portanto, deve ser fácil. Comece instalando o FileZilla ou outro cliente FTP de sua escolha. É gratuito, portanto não se preocupe com isso. Antes de começar, você também deve fazer backup do seu site. É fácil quebrar algo acidentalmente enquanto edita arquivos centrais.

Abra o FileZilla e coloque suas credenciais. Após alguns momentos, você deverá conectar-se ao seu site.

Clique na pasta pública e localize wp-config.php. Se você não conseguir encontrar público ou public-html, pode ser chamado de root, www, ou o nome do seu site.

Encontrar wp-config no FileZilla
Encontrar wp-config no FileZilla

Abra o wp-config. Tenha cuidado para não editar nada, exceto a linha limite de memória PHP, pois este é um arquivo sensível e pode quebrar seu site. Olhe através dela até encontrar esta linha: define('WP_MEMORY_LIMIT', '256M');

Limite de memória WP como aparece no wp-config
Limite de memória WP como aparece no wp-config

Mude o número listado ali, salve o arquivo e feche FileZilla. Tudo pronto!

Como mudar o limite de memória PHP no cPanel

Alguns anfitriões não permitem que você edite arquivos por FTP. Ao invés disso, eles podem lhe dar acesso ao cPanel. Se este for o seu caso, não se preocupe — você pode mudar seu limite de memória PHP dessa forma também.

Primeiro passo: Entre no cPanel usando as credenciais fornecidas por seu anfitrião. Na tela inicial, você verá uma seção de Software com um botão Selecionar Versão PHP.

Selecionando uma versão PHP no cPanel
Selecionando uma versão PHP no cPanel

Clique nele e, na parte superior da tela, você verá as opções Switch to PHP. Role para baixo até ver o memory_limit com um menu suspenso. Clique nele e mude-o para a configuração desejada. Clique em Aplicar e está tudo pronto.

Nem todos terão uma opção Selecionar Versão PHP. Em vez disso, você poderá ver o MultiPHP Ini Editor. Se este for o caso, seus passos serão um pouco diferentes.

MultiPHP Ini Editor no cPanel
MultiPHP Ini Editor no cPanel

Você precisará clicar nisso e, na próxima janela, em Configure PHP INI basic settings, você deverá abrir o menu suspenso e selecionar seu domínio. Encontre a seção memory_limit e insira o número que você deseja. Clique em Aplicar para salvar suas alterações.

Você também poderia tentar usar o Gerente de Arquivos do cPanel. Isto é muito semelhante ao acesso ao seu site por FTP. Sob a seção Arquivos em sua página inicial, clique em Gerenciador de Arquivos. Encontre sua pasta public/public-html (ou qualquer que seja seu nome) e abra o arquivo wp-config.php.

Encontre a linha WP_MEMORY_LIMIT como descrito na seção acima e mude o número para o que você deseja. Salve suas mudanças e certifique-se de aplicá-las, e isso é tudo o que você precisa fazer.

Qual deve ser o limite de memória PHP?

Quando você vai mudar seu limite de memória, seu primeiro impulso pode ser defini-lo para 900 MB ou algo parecido – o mais alto que você puder. Mas isto pode na verdade ser uma idéia muito ruim.

Caso um script em seu site quebre, ele pode rapidamente sair de controle e travar todo o seu servidor. Mesmo que seu site esteja hospeda do em hardware poderoso, um script corroendo toda a memória ainda pode causar sérios problemas.

Roteiros mal-configurados, que são excepcionalmente tributários, mas não quebrados o suficiente para causar problemas, também poderiam passar despercebidos. A maioria dos scripts PHP são muito pequenos, e o erro de limite de memória serve como um sinal de aviso de que algo está dando errado no backend. Se o ajuste for muito alto, você poderia ter estragado os scripts que se atolaram em seu site sem nunca saber.

Você deve definir seu limite de memória PHP o mais baixo possível enquanto ainda permite que seu site funcione normalmente.

128 MB é uma boa linha de base. É uma quantidade decente de memória que vai cuidar da maioria dos plugins intensivos. Se você souber que vai precisar de alguma energia extra, 256 MB cobrirão até mesmo os plugins mais pesados. E se você souber com certeza que tem uma potência real, 512 MB é o máximo absoluto que você deve definir. Em 90% dos casos, você nunca deve precisar aumentar o limite de memória para além de 256 MB.

E se a mudança do limite de memória não funcionar?

Se após editar seu arquivo PHP você ainda estiver encontrando o erro de memória, um de dois problemas é o problema: seu host alocou muito poucos recursos, ou há um script PHP em seu servidor ocupando demasiada memória.

Mais uma vez, você deve passar e desativar seus plugins até identificar o culpado. Com 128-256 MB de memória, nenhum plugin deve ocupar tanto espaço sem mencionar isso em algum lugar na documentação. Desative-o e notifique os autores dos plugins sobre o que aconteceu.

Ainda encontrando o erro mesmo depois de todos os plugins terem sido desativados? Deve haver algum conflito ou outra aplicação PHP causando o problema. Isto é mais do que você será capaz de resolver sozinho, então peça ajuda a seu web host.

Se o problema não for um plugin, a culpa provavelmente recai sobre seu anfitrião, que estabelece o limite de memória muito baixo. Você provavelmente está usando hospedagem compartilhada, o que é notório para alocar uma quantidade muito pequena de memória – compreensivelmente, pois se um site estiver usando muita memória RAM, ele atolará todo o sistema para dezenas de outros sites.

Sua única escolha aqui é atualizar para um plano que forneça mais recursos. Isso pode acabar sendo caro, especialmente se você estiver apenas tentando instalar um plugin intensivo em um novo site. Se você ainda não tiver muitos visitantes, todos os outros recursos obtidos com a atualização não o ajudarão muito.

Você também poderia mudar para um provedor de hospedagem gerenciada de WordPress, como o Kinsta, que proporciona mais memória em primeiro lugar.

Resumo

O limite de memória PHP existe por uma razão muito legítima: você não quer processos desonestos ocupando mais memória RAM do que deveriam. Mas quando você atinge o limite e encontra uma tela branca de morte enquanto usa um plugin legítimo, isso pode ser bastante irritante.

No final, depende de seu anfitrião quanta memória PHP você tem acesso. Se eles colocarem a barra muito baixa, é impossível aumentá-la.

No entanto, às vezes seu site estará usando menos recursos do que você realmente tem acesso. Nesse caso, é possível aumentar sua memória. Tente configurá-lo para 128 ou 256 MB (como opção padrão para todos os planos Kinsta), pois você não o quer muito alto..

Se nenhum desses métodos está funcionando, provavelmente é a falta de recursos alocados que causa o problema, em vez de um cenário que precisa mudar. Contate seu anfitrião e pergunte como obter mais, ou mude para um novo anfitrião como Kinsta que lhe dê mais memória do que você alguma vez precisará.