Cómo Solucionar el Error 'Allowed Memory Size Exhausted' en PHP de Forma Definitiva

Cómo Solucionar el Error 'Allowed Memory Size Exhausted' en PHP de Forma Definitiva
Anuncio relacionado

¿Qué es el error 'Allowed Memory Size Exhausted' en PHP?

El mensaje de error Fatal error: Allowed memory size of X bytes exhausted es uno de los fallos más habituales en el desarrollo web con PHP. Aparece cuando un script en ejecución requiere más memoria RAM de la que el servidor le tiene permitida por defecto.

Este límite es una medida de seguridad orientada a evitar que un script mal optimizado o con un bucle infinito consuma todos los recursos del servidor web y deje fuera de servicio a otros procesos.

Causas principales del fallo de memoria

  • Límite predeterminado bajo: La configuración por defecto en el archivo php.ini suele ser de 64M o 128M, insuficiente para procesar colecciones grandes de datos.
  • Procesamiento de imágenes pesadas: Librerías como GD o Imagick consumen mucha memoria al redimensionar o manipular archivos gráficos.
  • Consultas masivas a la base de datos: Cargar miles de registros en un array sin paginación agota rápidamente el buffer de memoria.
  • Bucles infinitos o fugas de memoria: Código ineficiente que acumula datos en variables globales dentro de iteraciones continuas.

Método 1: Incrementar la memoria desde el archivo php.ini

Esta es la solución más sólida si dispones de acceso al servidor o VPS. Modifica el límite global para todos los scripts PHP.

  1. Ubica el archivo php.ini activo en tu sistema. Puedes comprobar su ruta exacta creando un archivo con la función phpinfo();.
  2. Abre el archivo con tu editor de texto y busca la directiva memory_limit.
  3. Cambia el valor asignado por una cifra superior, por ejemplo: memory_limit = 256M o memory_limit = 512M.
  4. Guarda los cambios y reinicia tu servidor web (Apache o Nginx) ejecutando sudo systemctl restart apache2 o sudo systemctl restart php-fpm.

Método 2: Modificar el archivo .htaccess (en servidores Apache)

Si trabajas en un entorno de alojamiento compartido sin acceso directo a php.ini, puedes ajustar la variable desde la configuración de Apache.

  1. Accede a la carpeta raíz de tu proyecto mediante FTP o el administrador de archivos de tu panel.
  2. Abre o crea el archivo oculto .htaccess.
  3. Inserta la siguiente línea al final del documento: php_value memory_limit 256M
  4. Guarda el archivo y recarga tu aplicación web para comprobar el resultado.

Método 3: Ajustar el límite mediante código PHP en tiempo de ejecución

Si únicamente necesitas elevar la memoria asignada para un script pesado en particular (por ejemplo, una tarea de exportación de datos), puedes configurarlo al inicio del archivo.

Añade la siguiente directiva justo al comienzo de tu script PHP:

ini_set('memory_limit', '256M');

De esta forma, solo ese script específico tendrá disponible más memoria sin comprometer el resto del ecosistema de la aplicación.

Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Apps

Cómo Solucionar el Error ERR_CACHE_MISS en Google Chrome Definitivamente

¿Te aparece el molesto mensaje de confirmación de reenvío de formulario en Chrome? Aprende a solucionar este fallo de caché de manera sencilla.

Leer guía completa →
Mac

Cómo Solucionar el Error de Pantalla Negra al Iniciar Mac de Forma Definitiva

Te enfrentas a una pantalla negra al encender tu Mac y no sabes qué hacer? Aprende a diagnosticar y solucionar este error crítico de macOS de forma rápida.

Leer guía completa →
Apps

Cómo Solucionar el Error de Pantalla Negra en OBS Studio de Forma Definitiva

Aprende a resolver el frustrante problema de la pantalla negra en OBS Studio en pocos minutos. Descubre los métodos definitivos para que tus directos y grabaciones funcionen.

Leer guía completa →