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.
|
|
| 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 compartilhada 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
|
PRODUTO RECOMENDADO Alojamento WordPress Instalação num clique, actualizações tratadas e velocidade a sério. Ver planos |