¿Cómo Solucionar “Fatal error: Allowed memory size exhausted in” en WordPress?

Publicado el 28 abril 2017 por Aaroncat

Fatal error: Allowed memory size of "Bytes de Memoria" bytes exhausted in "dirección del archivo en el servidor" on line "Numero de Línea".

Todos los desarrolladores nos topamos con algunos problemas que son fáciles de resolver, pero que nos  hacen perder tiempo, en especial cuando queremos trabajar sobre algún framework como WordPress.  

Cuando instalamos este CMS (Sistema de Administración de Contenido) o similares nos podemos topar con un error muy común:

Fatal error:  Allowed memory size of "Bytes de Memoria" bytes exhausted in "dirección del archivo en el servidor" on line "Numero de Línea"

¿Por qué sucede este "Error fatal"?

Fatal... ufff

Se presenta este error cuando instalamos algún framework o plugin que requiere muchos recursos de memoria mientras se ejecuta y sobrepasamos el límite; por ejemplo, Slider Revolution, Power Builder, Massive Panel, etc..

Sin embargo, estos plugins y frameworks no son los culpables totalmente, sino

  1. Las constantes por defecto de la configuración de memoria en la instalación de WordPress,
  2. La configuración del límite de memoria del php.ini (archivos de inicializacion).
  3. La memoria física (o virtual) disponible en tu servidor.

¿Cómo Solucionar este Error?

Hay varias formas de resolver este error dependiendo donde esté la raíz.  

1. Comprobar la Memoria en las Constantes por Defecto de WordPress

El problema puede ser causado en el Front-End (lo que el usuario ve) o en el Back-End (área administrativa de WordPress).

Error causado por el Front End ('WP_MEMORY_LIMIT')

Haz lo siguiente si la causa del problema está en el "front-end":

  1. Ve a los archivos de instalación del WordPress específicamente a la carpeta: /wp-includes/
  2. Localiza el archivo default-constants.php y ábrelo.
  3. Encuentra la línea donde se define: 'WP_MEMORY_LIMIT
  4. Cambia el valor por defecto del uso límite de memoria para un sitio sencillo.

El valor por defecto para WordPress es de 40MB para sitios sencillos, puedes cambia el valor al doble a 64MB o hasta donde requieras, siempre y cuando tu servicio de hosting o servidor lo permita.

Error causado por el Back End ('WP_MAX_MEMORY_LIMIT')

Haz lo siguiente si la causa del problema está en el "back end"; es decir, en las tareas administrativas como las opciones de personalización, previsualización de imágenes, etc..:

  1. Ve a los archivos de instalación del WordPress específicamente a la carpeta: /wp-includes/
  2. Localiza el archivo default-constants.php y ábrelo.
  3. Encuentra la línea donde se define: 'WP_MAX_MEMORY_LIMIT
  4. Incrementa el límite a lo que consideres necesario.

Ref.: https://codex.wordpress.org/Editing_wp-config.php

2. Cambiar el Límite de Memoria en el php.ini

Si con la solución anterior no lograste resolver el problema; entonces, tocará ir al php.ini y cambiar los valores límites de memoria.

Haz lo siguiente:

  1. Abriremos carpeta raíz del sitio y buscaremos un archivo llamado php.ini
  2. Localizaremos la línea que contenga lo siguiente: memory_limit = "64MB" y lo incrementaremos hasta un máximo de 128 MB (lo más recomendable para una instalación sencilla).
¡Ayuda! No tengo acceso al PHP.ini

Si no tienes acceso al php.ini o no lo encuentras por ningún lado hay una solución muy fácil que requiere que crees un archivo de inicialización y hagas algunos cambios en el archivo .htaccess.

Haz lo siguiente:

  1. Crearás un archivo llamado phpinfo.php en la carpeta raíz de tu sitio.
  2. Colocarás el siguiente código: <?php  phpinfo();  ?>
  3. Luego accedes a ese archivo desde tu navegador:  www.eldominiodetusitio.com/phpinfo.php
  4. Localizarás la línea: "memory_limit" para conocer el límite de memoria máximo.

Al acceder a ese archivo que recién creaste verás la configuración de inicialización de tu sitio.

Luego que has realizado esta operación, lo siguiente:

  1. Crearás un archivo con el siguiente nombre php.ini en la misma carpeta donde tienes instalado el WordPress
  2. Y colocarás la siguiente línea: memory_limit=128M
  3. Comprueba si el error aparece nuevamente.
  4. Si ha sido solucionado; entonces, tienes que crear un hack de seguridad.

No podrás modificar un php.ini desde afuera; sin embargo, para evitar que alguien malintencionado se encuentre con el archivo haz lo siguiente:

  1. Abre el archivo .htaccess
  2. Al final agrega el siguiente código:  

<Files php.ini>
Order allow, deny
Deny from all
</Files>

El archivo debe quedar de la siguiente forma:

3. Memoria Física o Virtual del Servidor

En el caso que ninguna de las opciones anteriores te haya funcionado, debes comprobar la memoria disponible que te ha provisto tu servicio de hosting, puede que requieras un servicio mucho más potente con más memoria.

comentarios fabulosos