Vamos a ver cómo arreglar este error en 3 minutos (2 si tienes bien configurado tu cliente FTP).
Este error le ocurre tarde o temprano a todo el mundo, el mensaje acojona, unas veces pasa sólo en el Backoffice, otras veces al instalar un tema… será algo parecido a esto:
Fatal error: Allowed memory size of UnNumeroMuyGrande bytes exhausted (tried to allocate UnPuñaoGrande bytes) in /LaRutaEnTuServidor/public_html/wp-includes/plugin.php on line XXX
Claro, al ser un fatal error, WordPress no puede seguir funcionando. Al grano, lo arreglamos y luego explicamos por qué.
Cómo arreglar “Allowed memory size of XXX bytes exhausted”
Muy fácil, en la carpeta dónde esta tu WordPress te vas al wp-config.php y añades la siguiente línea.
define( 'WP_MEMORY_LIMIT', '256M' );
Ya debería funcionar, si no funciona es que tienes capado el límite de memoria en tu php.ini o en el htaccess, véamos qué hacer en estos casos.
Cambiar “memory limit” en .htaccess
El .htaccess es un archivo oculto que se encuentra en la raíz de WordPress, búscalo.
La ruta sería /TuRuta/CarpetaWordpress/.htaccess
Aquí hay que añadir la siguiente linea:
php_value memory_limit 64M
Cambiar el “memory limit” en el php.ini
Como ya sabrás -y si no, te lo digo yo- el archivo php.ini es el que almacena las opciones principales de tu servidor php, según tu servidor estará en una ruta o en otra, lo más habitual es que esté en la ruta /etc/php5/apache2 si tu máquina es Linux, si no está ahí sigue buscando, otras opciones típicas son /etc/php/7.0/apache2 o /etc/php/apache2
- Ábrelo con tu editor de texto favorito, normalmente lo harás desde la consola, por ejemplo (a mi me gusta nano):
sudo nano /etc/php5/apache2/php.ini
- Busca la variable “memory_limit” y cambia el valor por 256M tiene este aspecto. Aquí cambiaríamos 64M por 156M
memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)
- Reiniciamos Apache
sude service apache2 restart
¿Y si nada de ésto funciona?
Vale, has probado las tres opciones y no funciona, ¿estás usando un hosting compartido? En este caso no habrás podido acceder al php.ini y seguramente ése sea el problema, si es tu caso, aún podemos intentar una cosa: Crear un php.ini para nuestro directorio, en algunos casos funcionará, pero en la mayoría no.
- Ve al directorio raíz de tu WordPress
- Crea un archivo llamado php.ini
- Al igual que en la opción anterior, añade esta línea (esta vez no habrá nada más).
memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)
Con esto hemos intentado sobreescribir un valor de configuración de nuestro php sólo para este directorio.
Si aún así el avisto Allowed memory size of UnNumeroMuyGrande bytes exhausted persiste, contacta con el soporte técnico a ver si ellos pueden hacer algo, pero lo más probable es que tengas que cambiar de plan de hosting.
Explicación del error
Los servidores limitan la memoria máxima que puede ocupar un proceso, WordPress por su parte siempre intenta incrementar éste límite a 64 MB, con esto debería ser suficiente para la mayoría de los casos, pero a veces nos excedemos en algunos procesos concretos, a mi, por ejemplo, me acaba de ocurrir en esta tienda online al instalar un plugin de captación de leads, por eso he escrito ésto 😀
Al ser un límite que establece el servidor, cuando un proceso excede el límite de memoria devuelve un fatal error y te mata el proceso, ocurre mucho cuanto intentas procesar archivos grandes, como imágenes o bases de datos, en esos caso la opción de definir en el propio código PHP el límite, si estás fuera del entorno de WordPress deberás usar la siguiente línea:
define( 'WP_MEMORY_LIMIT', '256M' );
Espero que os haya sido útil.