Allowed memory size exhausted WordPress

Posted on

Nuestras amigas de Luna de Papel, han vuelto a tener un problema en su blog creado en WordPress, esta vez con el acceso al administrador. Parece ser que es un problema habitual encontrarse con la pantalla en blanco sin saber lo que está sucediendo. Sin embargo, si accedemos al archivo error_log que WordPress genera, encontramos el siguiente mensaje:

PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 122880 bytes) in ....

Después de alguna búsqueda, parece ser el problema está relacionado con conflictos del archivo cache.php. La solución es sencilla: abrimos el archivo wp-includes/cache.php e incluimos al comienzo del mismo, inmediatamente después de la siguinte línea de código
ini_set('memory_limit','64M'); // set memory to prevent fatal errors

En mi caso, he resuelto el problema con sólo incluir esa línea, pero en caso de que vuelva a dar problemas podemos añadir también un fichero .htaccess y un fichero php.ini en el directorio wp-includes.

El código del archivo .htaccess incluiría la siguiente directiva:
# set memory limit for cache.php
php_value memory_limit 64M

El archivo php.ini incluiría las siguientes líneas:
;; set memory limit for cache.php
memory_limit = 64M

Debe notarse que en este caso he necesitado fijar el valor en 64M, dado que el error me aparecía para una memoria de 41943040 bytes (42M) Igualmente podrían fijarse otros tamaños de 8, 12, 16, 32, 64, 128, ...etc., dependiendo del error.