Sendo o WordPress um CMS (Content Management System) com a possibilidade de utilização de temas e plugins externos, é comum que alguns erros aconteçam após a instalação, mesmo que para testes, de uma nova extensão desta natureza em seu site.

Ele também é suscetível a alguns erros quando ocorre um upgrade de versão do PHP ou Apache ou Nginx, devido à complexidade de manter todos estes plugins e temas atualizadoe com compatibilidade com as versões mais atuais destes softwares.

O ideal é verificar na documentação oficial das extensões se elas já fornecem suporte à uma nova versão do WordPress que você pretenda atualizar, ou da linguagem PHP ou ainda, do servidor HTTP Apache ou Nginx.

Porém, mesmo após você analisar, estudar e decidir pelos upgrades, erros podem acontecer em sua instalação.

Alguns lhe darão uma indicação nas páginas do site, outros permitirão que você verifique no ambiente administrativo do WordPress mas, existem erros que quebrarão totalmente o acesso ao site, retornando o famigerado 500 ERROR.

Limite de memória no PHP

Um dos problemas desta natureza mais comuns está relacionado ao consumo exaustivo de memória, o que acontece com frequência na instalação ou atualização de um tema ou plugin com bug.

A mensagem em geral é a seguinte:

Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 20480 bytes)

Os valores podem aparecer diferentes para o seu servidor.

A tradução livre seria:

Erro fatal: Tamanho permitido para memória de 41943040 bytes foi exaurido (tentativa de alocar 20480 bytes).

Outra forma que a mensagem com este erro pode aparecer é:

PHP Fatal error: Out of memory (allocated 4193040 bytes) (tried to allocate 20480 bytes).

A tradução livre seria:

PHP Erro fatal: Sem memória (alocados 4193040 bytes) (tentativa de alocar 20480 bytes).

Estas mensagens de erro significam que o WordPress necessitou de mais memória para execução de um script em um cliclo de Http Request, maior que o permitido na configuração de sua instalação PHP.

Neste exemplo o PHP já alocou 4193040 bytes (em torno de 40M) e a tentativa de alocar os próximos 20480 bytes não foi possível pois estourou o limite.

Esta relação de uso de memória permitida é configurada na diretiva memory_limit do arquivo php.ini de sua instalação.

Aumentando o limite de memória no PHP

Existem algumas maneiras de aumentar o limite de memória para execução dos scripts PHP, a seguir inicio mostrando o formato global de configuração no servidor, em geral, o mais indicado.

Na sequência como configurar no raiz de qualquer projeto PHP, e por fim, como aumentar dentro de um script específico.

Configurando o limite de memória no arquivo php.ini

Em geral uma alteração no arquivo php.ini, seguindo o exemplo abaixo, pode resolver. Procure na seção Resources limits, altere a variável de configuração memory_limit.

Em geral eu inicio de maneira conservadora e subo dos tradicionais 40M para 64M, mas nada impede que você suba para 128M como exemplo a seguir.

Lembre-se, o trecho a seguir é uma amostra das linhas onde deve encontrar a configuração, no arquivo php.ini, de limite máximo para o PHP neste servidor.

; How many GET/POST/COOKIE input variables may be accepted
; max_input_vars = 1000

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M

Configurando o limite de memória PHP na configuração .htaccess

É possível definir a configuração de limite de memória de execução do PHP diretamente no arquivo .htaccess de um projeto. Quando fazer isso:

  • em algumas situações, por que você não deseja que a configuração de um determinado projeto impacte a configuração global do servidor
  • por quê você não tem permissão de alterar o arquivo php.ini

Para isto, abra o arquivo .htaccess que você usa para seu projeto PHP e adicione a linha a seguir:

php_value memory_limit 128M

Note que dependendo da configuração de seu servidor, a possibilidade de sobreposição de definições usando o .htaccess podem estar desabilitadas.

Aumentando o limite de memória na configuração do WordPress

Caso você esteja trabalhando com um servidor de hospedagem compartilhado (shared server host) e não tenha permissão de alterar as configurações do PHP.

Ou, em casos quando possui mais de um software instalado no mesmo servidor e não deseja aumentar de maneira geral este limite, para manter um nível de controle mais granular.

Você pode optar pela estratégia de alterar o valor limite de memória na execução do WordPress, alterando o arquivo wp-config.php.

Para isto , basta adiciona a seguinte linha no início do arquivo:

<?php

ini_set('memory_limit','128M');

Considerações finais

É necessário manter constante organização e manutenção em sua instalação WordPress para que seu site, além de seguro e estável, mantenha-se em funcionamento constante, evitando perda de acessos e público para sua empresa ou conteúdo.