Allowed memory size of 134217728 bytes exhausted

Si al ejecutar un script php nos aparece este error (cambiando los bytes):

Allowed memory size of 134217728 bytes exhausted

Es causado por el «memory_limit» de Apache. Esta directiva nos limita la cantidad de bytes que un script puede consumir, para ver más info: (https://www.php.net/manual/es/ini.core.php#ini.memory-limit)

Bien, para solucionarlo, ingresaremos a servidor via ssh (o abriendo la terminal si estamos en local).

Primero localizaremos el archivo php.ini

Podemos ejecutar para buscarlos:

 sudo find / -name php.ini

Que nos devolverá algo parecido a (depende de las versiones de php que tengamos instaladas):

/etc/php/5.6/apache2/php.ini
/etc/php/5.6/cli/php.ini
/etc/php/7.2/apache2/php.ini
/etc/php/7.2/cli/php.ini

Según la versión que estemos ejecutando de php deberemos modificar un archivo u otro. En mi caso, estoy con php5.6, con lo que modificaré el php.ini de php5.6 de apache:

sudo nano /etc/php/5.6/apache2/php.ini

(Recordamos que si no tenemos una copia de este fichero, deberíamos tenerla)

sudo cp /etc/php/5.6/apache2/php.ini /etc/php/5.6/apache2/php.ini.bkp

Después de este paréntesis, volvemos a la edición del archivo con nuestro editor favorito, en este caso es nano.

Para encontrar la directiva de forma más rápida, teclearemos Ctrl + Q para buscar memory_limit dentro del documento.

Subiremos el número de M que queremos de máximo o lo setearemos a -1 si no queremos tener límite de ejecución.

Por defecto está a 128M, aquí lo setearemos a 256M:

memory_limit = 256M

Para terminar la edición del archivo podemos directamente salir Ctrl + X, y nos preguntará si queremos guardar los cambios Y.

Bien, ya está… solo nos quedará reiniciar apache, pero, antes de reiniciar siempre es conveniente comprobar que la sintaxis de configuración es correcta (por si se nos ha colado algo)
Comprobamos:

apachectl configtest

Y reiniciamos:

sudo /etc/init.d/apache2  restart  

💃🏻


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*