Allowed memory size of…. Error en PHP

El día de ayer aquí en la oficina me avisaron de que una aplicación web estaba fallando, tirando el mensaje

Fatal Error: Allowed memory size of X bytes exhausted….

Causa

Esto sucede por que la app. necesita más memoria reservada para trabajar

Solución

Para solucionar este sencillo problema tenemos 3 opciones:

  1. Modificar el PHP.ini

    Ubicamos la variable memory_limit y cambiamos su valor(por default 12M).

  2. Usar ini_set para cambiar la variable de configuración del php.ini directamente desde tu script

    La función que usaremos en este caso sería ini_set, de la siguiente forma:
    ini_set(“memory_limit”,”xM”); (siendo x la memoria reservada para el PHP).

  3. Creando un .htaccess o modificando el httpd.conf de apache.

    Modificando el .htacces o httpd.conf del apache y agregando la linea
    php_value memory_limit xM.

El valor que debes colocar depende de cuanta memoria reservada requiera tu script, en mi caso yo he colocado 50M y el script funciona de maravilla! :)

Hasta la próxima.!

Eduardo says:

Sin dudas este error me ha causado muchos dolores de cabeza… en especial cuando se trabaja con la libreria GD para tocar imagenes muy grandes (1600×1200).

Algunos hostings de servicio compartido no permiten modificar el valor memory_limit, por suerte el mio si lo permite :)

Salu2!

Karina says:

Gracias por este aporte, he estado teniendo este error ultimamente, ahora mismo hago los cambios necesarios en mi php.ini, buen post!

Carlos Angarita says:

No soy programador PHP y una aplicación que me vendieron presenta el mensaje Fatal Error: Allowed memory size of X bytes exhausted….
No puedo acceder al php.ini, por lo que fuí al código duente e hice el llamado a ini_set(”memory_limit”,”xM”); en el archivo index.php de mi aplicación, pero aún no me funciona.
Me podrian ayudar a identificar mi error.

getSessionError();

?>

Eduardo says:

@Carlos: Desgraciadamente, si tu servidor no permite estos cambios, no puedes hacer nada.
En la mayoria de los casos, te debería funcionar con esto:
Crea un archivo llamado php.ini y escribe dentro lo siguiente

memory_limit = 50M

Lo subes al servidor y compruebas si funciona, en caso de que no:
Creas (si no existe) o modificas el archivo .htaccess agregando la siguiente linea:

php_value memory_limit 50M

Si el error continúa, tienes dos opciones:
Contratar a alguien para que lo arregle.
Cambiar de servidor hosting.

Espero que funcione! Saludos.

Este comentario te ha servido? y colabora con el blog
Reply

A mi tambien me pasa el mismo error en un servidor propio de mi casa, por mas que cambio y aumento el limite de memoria no se arregla. Tendre que optimizar el codigo php de alguna manera, ojala se pueda.
Saludos

Yukiko Gahn says:

La mente de uno lleva a una manera de hacerse sin conocimiento de nadie , además de que de repente se vuelve claro lo que una manera de hacerlo .
No hay tiempo para cortar y seca monotonía . No hay tiempo para el trabajo . Y el tiempo para el amor. Eso deja a casi cualquier otro momento !