«Não consigo carregar a imagem.» «A importação pára a meio.» «O menu perdeu metade dos itens depois de gravar.» São três queixas diferentes com a mesma origem: um limite do PHP que foi atingido. A boa notícia é que quase todos se mudam no seu próprio painel, sem abrir pedido.
Os quatro que interessam, e o que cada um trava
| Limite |
O que acontece quando é atingido |
| upload_max_filesize |
O ficheiro não carrega. O WordPress diz que o ficheiro excede o tamanho máximo. É de longe o mais atingido. |
| post_max_size |
O formulário inteiro falha, ou vários ficheiros de uma vez. Tem de ser maior do que o de cima. |
| memory_limit |
Página em branco ou erro crítico, com Allowed memory size exhausted no registo. |
| max_execution_time |
A operação pára a meio sem terminar. Típico de importações, cópias e migrações. |
|
E há um quinto que ninguém conhece, e que falha em silêncio. O max_input_vars limita quantos campos um formulário pode enviar — não o tamanho, o número. Quando é ultrapassado, o PHP deita fora os campos a mais sem dizer nada. É a explicação para menus grandes do WordPress que perdem itens ao gravar, e para páginas de opções de temas que não guardam metade das definições. Ninguém suspeita do PHP porque não aparece erro nenhum.
|
Limite de memória do PHP não é a memória do plano
Confunde-se muito, e a diferença é simples.
| memory_limit |
A memória do plano |
| É por pedido |
O tecto que um script pode gastar de cada vez. |
| Serve de travão |
Existe para impedir que um código mal feito consuma tudo e derrube o resto. |
| Somam-se |
Três visitas ao mesmo tempo, com 100 MB cada, são 300 MB de consumo — e nenhuma atingiu um limite de 128 MB. |
| É o total da conta |
O que o plano lhe dá ao todo, partilhado por tudo o que está a correr. |
Daí a conclusão que interessa: subir o memory_limit não lhe dá mais recursos — só deixa cada pedido gastar mais dos que já tem. Se o problema for o plano estar no tecto, o sintoma é outro (o erro 508) e a solução também: ver os erros do site: 500, 403, 404 e 508 e como acompanhar o desempenho no cPanel.
Como mudar, sem pedir nada a ninguém
Estes quatro estão à sua disposição no cPanel — não precisa de nos escrever:
| 1 |
Abra o selector de PHP e vá ao separador das opções. Estão lá o memory_limit, o max_execution_time, o post_max_size e o upload_max_filesize.
|
|
| 2 |
Em alternativa, o MultiPHP INI Editor faz o mesmo por domínio, e o modo de edição directa deixa acrescentar o max_input_vars, que não aparece na lista básica.
|
|
| 4 |
Se ficou pela metade, confirme a ordem: memory_limit maior que post_max_size, e este maior que upload_max_filesize. Se estiverem trocados, o mais pequeno manda e o ajuste parece não ter feito nada.
|
|
|
Valores que resolvem quase tudo. Para uma loja ou um site com muitas imagens: upload_max_filesize 64M, post_max_size 128M, memory_limit 256M, max_execution_time 120 e max_input_vars 5000. Não ponha números enormes «por segurança»: um limite alto não acelera nada e só deixa um código mal feito correr mais tempo antes de falhar.
|
O WordPress tem um limite seu, por cima deste
Detalhe que faz perder tardes: mesmo com o memory_limit do servidor generoso, o WordPress aplica um tecto próprio. Se continuar a ver falta de memória depois de subir o do painel, acrescente ao wp-config.php, antes da linha que diz para parar de editar:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
O primeiro vale para o site; o segundo, mais alto, só para o painel de administração, que é onde as operações pesadas correm. Nenhum dos dois pode passar o limite do servidor — são um tecto dentro de outro. Mais sobre ler estes erros em erros comuns do WordPress.
Quando subir o limite não é a resposta
Vale a pena dizer, porque poupa tempo a toda a gente: se está a subir o mesmo limite pela terceira vez, o limite não é o problema.
| 1 |
Uma importação enorme faz-se por partes, ou pela linha de comandos, e não esticando o tempo de execução até caber.
|
|
| 2 |
Uma imagem de 40 MB não deve ir para um site. Redimensione antes — ver o site está lento.
|
|
| 3 |
Um plugin que precisa de 512 MB para desenhar uma página tem um problema, e o problema não é o servidor.
|
|
Sobre o que tratamos nós e o que fica do lado da aplicação, ver até onde vai o nosso apoio. E antes de mexer no wp-config.php ou em ficheiros de configuração, garanta que tem cópia — como repor os seus dados com o JetBackup.
|
Subiu os limites e continua a falhar? Mande-nos a mensagem de erro.
Abrir um pedido
|