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

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

¿Qué es el Error Fatal '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 nos enfrentamos los desarrolladores web al trabajar con PHP. Este fallo ocurre cuando un script intenta consumir más memoria RAM de la que tiene asignada por defecto en la configuración del servidor, lo que provoca la interrupción inmediata de la ejecución del código.

Causas Principales del Error de Memoria en PHP

Entre los motivos más frecuentes que provocan este consumo excesivo de recursos se encuentran:

  • Bucles infinitos o recursividad mal implementada que acumulan datos en memoria.
  • Consultas SQL masivas que intentan cargar miles de registros completos en un solo array.
  • Procesamiento de archivos pesados, imágenes grandes o lectura ineficiente de documentos CSV y XML.
  • Plugins, temas o librerías de terceros mal optimizados en CMS como WordPress o frameworks personalizados.

Método 1: Modificar el límite de memoria en el archivo php.ini

La forma más limpia y permanente de solucionar este problema a nivel de servidor es editando el archivo de configuración global php.ini.

  1. Localiza tu archivo php.ini en tu servidor (su ruta común en Ubuntu es /etc/php/8.x/apache2/php.ini o similar).
  2. Abre el archivo con un editor de texto con privilegios de administrador.
  3. Busca la directiva memory_limit y cambia su valor actual por uno mayor, por ejemplo: memory_limit = 512M.
  4. Guarda los cambios y reinicia tu servidor web (Apache o Nginx) ejecutando el comando sudo systemctl restart apache2.

Método 2: Incrementar el límite de memoria mediante .htaccess

Si tu sitio web corre sobre un servidor Apache y no tienes acceso directo al archivo php.ini principal, puedes utilizar el archivo de configuración del directorio.

  1. Accede al directorio raíz de tu proyecto mediante FTP o tu panel de control.
  2. Busca o crea un archivo llamado .htaccess.
  3. Añade la siguiente línea de código al inicio del archivo: php_value memory_limit 512M.
  4. Guarda los cambios y recarga tu página web para comprobar que el error ha desaparecido.

Método 3: Aumentar el límite directamente desde el código PHP

Si necesitas aplicar una solución temporal y específica únicamente para un script pesado (como una importación masiva), puedes declarar el límite de memoria directamente en tu archivo PHP.

  1. Abre el archivo PHP donde se genera el error.
  2. Añade la siguiente función justo en la primera línea después de la etiqueta de apertura de PHP: ini_set('memory_limit', '512M');.
  3. Prueba ejecutar el script nuevamente. Recuerda que este método solo afecta al archivo donde se declara.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
PrestaShop

Cómo Solucionar el Error 504 Gateway Time-out en PrestaShop de Forma Definitiva

El error 504 Gateway Time-out en PrestaShop interrumpe el acceso a tu tienda. Descubre cómo identificar el origen y solucionarlo hoy mismo.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error SQL Syntax Error en MySQL de Forma Definitiva

Descubre por qué ocurre el molesto error de sintaxis en tus consultas SQL y cómo solucionarlo rápidamente para evitar caídas en tu aplicación.

Leer guía completa →
Magento

Cómo Solucionar el Error de Dependencias de Composer en Magento 2 de Forma Definitiva

Soluciona los molestos conflictos de versiones en Composer al actualizar tu tienda Magento 2. Guía técnica avanzada para desarrolladores.

Leer guía completa →