Cómo resolver Error fatal de PHP: tamaño de memoria permitido de 8388608 bytes agotados

Uno de los errores más comunes y frustrantes.encontrado por los codificadores de PHP dice: "Error grave: tamaño de memoria permitido de 8388608 bytes agotados ..." seguido de algo como "(intentó asignar bytes XXXX) en /home/www/file.module en la línea 12." Este error fatal de PHP surge porque, de manera predeterminada, PHP tiene un límite de uso de memoria de 8 MB para cualquier script dado. Esto es algo bueno, en realidad, porque no desea que un script PHP deshonesto derribe su servidor al acaparar toda la memoria. Pero ocasionalmente, tendrá un script PHP que normalmente excede el límite de 8 MB (digamos, para importar o cargar) Para solucionar el mensaje de error "Error grave: tamaño de memoria permitido de 8388608 bytes agotados ...", simplemente inserte esta línea de código en su script en la parte superior:

ini_set ("memory_limit", "16 millones");

limite de memoria

Esto establecerá su límite de memoria en 16 MB, más biende 8 MB. Puede, y debe, jugar con este número para que sea lo más bajo posible sin repetir ese mensaje de error. Esto solo alterará el límite de memoria para ese archivo PHP en particular.

Alternativamente, puede alterar su archivo php.ini para aumentar el límite de memoria. Esto afectará a todos los scripts en su servidor. Simplemente abra php.ini y busque la línea que dice "memory_limit" y modifíquela:

memoria_limit = 16M

Error fatal: tamaño de memoria permitido de 134217728 agotado

Lo he notado en mi propio PHP.archivo ini que mi valor predeterminado es mucho mayor a 128M. Entonces, si alguna vez recibiera este mensaje de error, se leería: "Error fatal: tamaño de memoria permitido de 134217728 bytes agotados ..." y obviamente sería un problema mucho mayor. Pero tiene la misma solución que "Error grave: tamaño de memoria permitido de 8388608 bytes agotados ..." o "Error grave: tamaño de memoria permitido de 16777216 bytes agotados ..." o lo que sea. Aparentemente, el valor predeterminado de memory_limit aumentó de 8M a 16M en PHP 5.2.0 y ahora es de 128M para PHP 5.3.0, lo que explicaría por qué es posible que no reciba este mensaje de error.

También puede deshabilitar el límite de memoria estableciendo memory_limit en –1 en PHP.ini.

memory_limit = -1

Sin embargo, esto no suele ser una buena idea, por razones obvias.

Nota: También puede usar la línea memory_limit en su página .htaccess.

Ahora, recuerde, esto es solo una solución. Realmente, tu script PHP debería no supere los 8 MB, a menos que cargue archivoshaciendo otra cosa que obviamente está consumiendo mucha memoria. Lo que realmente deberías estar haciendo es tratar de descubrir por qué tu script está usando tanta memoria e intentar solucionarlo. Una forma de calcular cuánta memoria está usando su script PHP es usar la función PHP memory_get_usage (). Simplemente repítalo en cualquier punto de su script para descubrir dónde está aumentando su uso de memoria:

echo memory_get_usage ();

Si recibe este mensaje de error en Drupal o Joomla, el culpable probable es un nuevo módulo o paquete. Por ejemplo, en Drupal, se carga la página admin / modules cada módulo en su instalación de Drupal, que puede obtenersi un módulo personalizado tiene errores, está dañado o hackeado. Intente deshabilitar los módulos uno por uno para identificar cuál está haciendo caer la fiesta. Además, algunos proveedores de alojamiento ignorarán sus intentos de modificar los límites de memoria para su código PHP, por lo que es posible que deba ponerse en contacto con su soporte de alojamiento para ayudarlo. He encontrado que a veces necesito editar el archivo php.ini y otras veces poner el código en el archivo .htaccess. De cualquier manera, con suerte, ¡esta información aquí es suficiente para que puedas seguir tu camino!

0

Artículos similares

Deja un comentario