¿Qué es el error 'Allowed Memory Size Exhausted' en PHP?
El error Fatal error: Allowed memory size of X bytes exhausted es uno de los problemas más comunes a los que se enfrentan los desarrolladores web PHP. Ocurre cuando un script o una consulta consume más memoria RAM de la que tiene asignada por defecto en la configuración del servidor.
Causas principales de este error
- Consultas a bases de datos mal optimizadas que devuelven miles de registros innecesarios.
- Bucles infinitos o funciones recursivas mal implementadas.
- Procesamiento de archivos pesados (CSV, XML o imágenes grandes) sin liberar memoria.
- Límites de memoria demasiado bajos configurados en el archivo
php.ini.
Método 1: Aumentar el límite de memoria en el archivo php.ini
- Localiza tu archivo
php.inien el servidor (su ruta varía según tu sistema operativo y versión de PHP). - Ábrelo con un editor de texto y busca la directiva
memory_limit. - Cambia el valor actual por uno mayor, por ejemplo:
memory_limit = 512M. - Guarda los cambios y reinicia tu servidor web (Apache o Nginx) para aplicar la nueva configuración.
Método 2: Modificar el límite de memoria mediante .htaccess
- Si utilizas un servidor Apache y no tienes acceso al
php.iniprincipal, abre el archivo.htaccessen la raíz de tu proyecto. - Añade la siguiente línea de código al final del archivo:
php_value memory_limit 512M. - Guarda el archivo y recarga tu sitio web para comprobar si el error ha desaparecido.
Método 3: Incrementar el límite de memoria directamente en el script PHP
- Abre el archivo PHP específico que está generando el fallo en tu editor de código.
- Añade la función
ini_setal principio del script, justo después de la etiqueta de apertura de PHP:ini_set('memory_limit', '512M');. - Guarda el archivo y prueba ejecutar nuevamente el script para verificar su correcto funcionamiento.