Aumentar a memória disponível ao WordPress

O sintoma é sempre parecido: uma operação pesada pára a meio, ou a página fica em branco, e no registo de erros aparece a linha Allowed memory size of ... bytes exhausted. Não é código partido: é uma operação que não coube na memória que lhe foi dada.

Três tectos, e a ordem em que mandam

A confusão toda vem de haver três limites diferentes com nomes parecidos. Um não pode passar o de cima:

Tecto O que é
1. A memória da conta O total que o plano lhe dá, partilhado por tudo o que estiver a correr ao mesmo tempo. É o tecto de todos os outros e não se muda no cPanel: os limites que não vêm no anúncio.
2. O memory_limit do PHP O máximo que um pedido pode gastar de cada vez. Muda-se no cPanel, por si.
3. O WP_MEMORY_LIMIT Um tecto que o próprio WordPress se impõe, dentro do anterior. Muda-se no wp-config.php.
Aumentar o tecto 3 sem aumentar o 2 não faz nada. É o erro mais comum, e explica as tardes perdidas a mexer no wp-config.php sem nada mudar. O WordPress não consegue exceder o PHP, e o PHP não consegue exceder a conta. Mexa nos dois, por esta ordem.

Passo 1: o PHP, no cPanel

1 No cPanel, abra Select PHP Version e vá ao separador Options. Em alternativa, o MultiPHP INI Editor faz o mesmo por domínio.
2 Procure o memory_limit e escolha um valor mais alto do que o que lá está.
3 Grave. A alteração é imediata, não precisa de nos pedir nada.

A tabela dos quatro limites do PHP, com valores que resolvem quase tudo e a ordem em que têm de estar uns em relação aos outros, está em limites do PHP: memória, tempo e tamanho de envio.

Passo 2: o WordPress, no wp-config.php

Acrescente estas duas linhas por cima da que diz That’s all, stop editing:

1 define( 'WP_MEMORY_LIMIT', '256M' ); aplica-se ao site.
2 define( 'WP_MAX_MEMORY_LIMIT', '512M' ); aplica-se só ao painel de administração, que é onde correm as operações pesadas: importações, actualizações e cópias.

Se o site ficar em branco depois de gravar, não foi a memória: foi um erro de sintaxe no ficheiro. Uma aspa a menos chega. Veja erros comuns do WordPress.

Passo 3: confirmar que pegou

Não confie no ficheiro: confirme no site.

1 No painel do WordPress, abra Ferramentas › Saúde do site › Informações e a secção Servidor. O memory_limit do PHP está lá, e há uma secção WordPress com o limite que ele se impõe.
2 Se o número não mudou, foi gravado no sítio errado. Confirme com o phpinfo(): ver e ajustar a configuração do PHP.
3 Repita a operação que falhava. É esse o teste que conta.
Uma causa que ninguém procura: a versão do PHP. Se o domínio está a correr uma versão e você alterou as opções de outra, o valor não muda e parece que o painel não funciona. Confirme qual é a versão activa deste domínio antes de mexer nas opções.

Quando aumentar é a resposta errada

Vale a pena dizer, porque poupa dinheiro a toda a gente: se está a aumentar o mesmo limite pela terceira vez, o limite não é o problema.

O que está a acontecer O que fazer em vez de aumentar
Uma importação enorme não acaba Parta-a em pedaços. A maioria das ferramentas de importação tem essa opção.
Uma página com muitas imagens rebenta As imagens é que estão erradas, não a memória: o site está lento.
Um plugin sozinho precisa de meio giga Esse plugin tem um defeito, e o defeito não é do servidor. Encontre-o desactivando metade de cada vez.
O site inteiro ficou pesado com os anos A conversa passou a ser sobre o plano: hospedagem partilhada ou VPS.

Para descobrir qual é o plugin, a linha do registo de erros costuma dizer o caminho do ficheiro que estourou. Como se lê está em onde está o log de erros do PHP, e se as mensagens estiverem à vista no site, avisos de PHP à vista no site.

Aumentou e continua a falhar? Mande-nos a linha do registo.

Abrir um pedido

VEJA TAMBÉM

Planos de hospedagem e os limites de cada um

Hospedagem WordPress

Política de Suporte

PRODUTO RECOMENDADO

Alojamento WordPress

Instalação num clique, actualizações tratadas e velocidade a sério.

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?