Cómo Solucionar el Error Fatal Allowed Memory Size Exhausted en PHP Paso a Paso

Cómo Solucionar el Error Fatal Allowed Memory Size Exhausted en PHP Paso a Paso
Anuncio relacionado

Introducción al Error Allowed Memory Size Exhausted en PHP

Uno de los errores más frustrantes a los que nos enfrentamos los desarrolladores web al trabajar con PHP es el temido Fatal error: Allowed memory size of X bytes exhausted. Este fallo detiene por completo la ejecución del script, mostrando una pantalla en blanco o un error 500 en el servidor, interrumpiendo la experiencia del usuario y afectando el rendimiento de la aplicación.

Causas Principales de este Error en PHP

El motor de PHP asigna por defecto una cantidad máxima de memoria RAM a cada script en ejecución (definida en el archivo de configuración php.ini). Cuando un script supera este umbral, PHP interrumpe el proceso por seguridad. Las causas más comunes incluyen:

  • Consultas a bases de datos demasiado grandes que intentan cargar miles de registros en un solo array.
  • Bucles infinitos o recursiones mal estructuradas que consumen memoria acumulativa.
  • Procesamiento de imágenes pesadas o archivos grandes sin liberación previa de recursos.
  • Plugins, temas o dependencias mal optimizados (común en CMS como WordPress, Magento o frameworks como Laravel).

Método 1: Aumentar el Límite de Memoria en el Archivo php.ini

La solución más limpia y permanente a nivel de servidor es modificar directamente la directiva memory_limit en el archivo de configuración de PHP.

  1. Localiza tu archivo php.ini en el servidor. Su ubicación varía según el sistema operativo y la versión de PHP (por ejemplo, /etc/php/8.2/apache2/php.ini).
  2. Abre el archivo con un editor de texto con privilegios de administrador.
  3. Busca la línea que contiene memory_limit y cambia su valor según tus necesidades (por ejemplo, a 512M): memory_limit = 512M
  4. Guarda los cambios y reinicia tu servidor web (Apache o Nginx) para aplicar la nueva configuración: sudo systemctl restart apache2

Método 2: Modificar memory_limit Temporalmente con .htaccess

Si tu sitio web corre sobre un servidor Apache y no tienes acceso root para modificar el php.ini global, puedes utilizar el archivo .htaccess ubicado en la raíz del proyecto.

  1. Accede a tu servidor mediante FTP o el explorador de archivos del panel de control (cPanel, Plesk, etc.).
  2. Busca el archivo oculto llamado .htaccess en la carpeta raíz del sitio.
  3. Añade la siguiente línea al final del archivo: php_value memory_limit 512M
  4. Guarda los cambios y recarga tu página web para verificar que el error haya desaparecido.

Método 3: Ajustar el Límite Directamente en el Código PHP (ini_set)

Si el problema ocurre en un script o sección específica de tu aplicación, puedes aumentar el límite de memoria de manera programática utilizando la función ini_set al inicio de tu archivo PHP principal o controlador.

  1. Abre el archivo PHP donde se genera el error.
  2. Justo después de la etiqueta de apertura de PHP, añade la siguiente línea de código:

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

    Guarda el archivo y vuelve a ejecutar la tarea o script para comprobar su correcto funcionamiento.

Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Windows

Cómo Solucionar el Error 0x80070422 en Windows Update de Forma Definitiva

El error 0x80070422 bloquea por completo las actualizaciones de seguridad en Windows. Aprende a reactivar los servicios esenciales del sistema y solucionar este fallo.

Leer guía completa →
Windows

Cómo Solucionar el Error 0x80070002 en Windows de Forma Definitiva

El error 0x80070002 en Windows suele interrumpir las actualizaciones del sistema. Descubre los métodos más efectivos para solucionarlo hoy mismo.

Leer guía completa →
Apps

Cómo Solucionar el Error ERR_CACHE_MISS en Google Chrome de Forma Definitiva

El error ERR_CACHE_MISS en Google Chrome impide cargar páginas web correctamente debido a fallos en la caché. Aprende a solucionarlo de forma definitiva.

Leer guía completa →