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.

Na verdade erros de limite de memória podem atingir outros sistemas desenvolvidos em PHP, como no framework Laravel, por exemplo.

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.

memory_limit:

Define a quantidade máxima de memória em bytes que um script pode alocar. Isto ajuda a previnir que scripts mal escritos consumam toda a memória disponível no servidor. Note que para que não haja limite de memória, esta diretiva deve ser configurada para -1. Quando um integer é utilizado, o valor é medido em bytes. A resumida notação, como descrito neste FAQ, pode também ser usada.

manual do PHP

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.

Mantenha-se atualizado

Não esqueça de me seguir no Twitter e assinar o Canal Mazer.dev no Youtube para receber atualizações de novos artigos, vídeo aulas e cursos gratuitos em programação de computadores, desenvolvimento de software com qualidade, engenharia de software e ferramentas como WordPress, Git, Gitlab, Github, dentre outros.

Mais sobre WordPress e PHP

Conexão de bancos de dados do Laravel com Docker Laradock
A conexão é bem direta e intuitiva com os servidores de bancos de dados MySQL ou Mariadb em um projeto PHP Laravel quando se usa contêineres Docker do projeto Laradock. Porém algumas dicas e lembretes …
Laradock, instalação e configuração
Como instalar e configurar o Laradock, que é, como apresentado no artigo introdutório, um projeto para configuração rápida e simples de ambientes de desenvolvimento de sistemas PHP para web, usando Docker. Neste artigo tutorial, veremos …
Laradock – Containers Docker para seu desenvolvimento PHP e Laravel – Introdução
Laradock é um ambiente de desenvolvimento web completo para Docker, que nasceu para atender o desenvolvimento de sistemas Laravel e atualmente provê containers para diversas situações para o desenvolvimento com PHP. Ele oferece suporte a …
Roteamento no Laravel não funciona
Este artigo trata do roteamento Laravel não funcionar em instalações novas de projeto, levando em consideração um contexto muito específico, instalações novas do servidor Apache. Roteiro do problema Em algum momento você vai iniciar um …
Como resolver erro Laravel class not found em php artisan migrate:rollback
Se você está recebendo o erro class not found ao executar o comando php artisan migrate:rollback em um projeto com o framework Laravel, este artigo mostra como resolver o erro e executar o roolback. Migrations …
Como criar data de Copyright com ano automático em seu blog ou site com PHP, WordPress e Laravel
Adicionar a informação de copyright com o ano atual no rodapé de sites e blogs é importante para passar ao seu público a informação de que o conteúdo que ele encontra está "vivo" e atualizado …

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *