Introducción al Error de Límite de Memoria en Magento 2
Magento 2 es una plataforma de comercio electrónico sumamente potente, pero también muy exigente en cuanto a recursos de servidor. Uno de los problemas más frecuentes a los que se enfrentan los administradores y desarrolladores es el error Allowed memory size of X bytes exhausted, que suele aparecer durante la compilación, la indexación o al ejecutar comandos en la línea de comandos (CLI) con bin/magento. Esto ocurre cuando un script PHP supera la cantidad máxima de memoria asignada en el archivo de configuración php.ini.
Causas Principales del Problema
El consumo excesivo de memoria en Magento 2 generalmente se debe a:
- Un límite de memoria configurado demasiado bajo para los estándares de Magento (por ejemplo, 128M o 256M).
- Ejecución de tareas pesadas en segundo plano como la reindexación masiva o la generación de código dependiente.
- Extensiones o módulos mal optimizados que generan fugas de memoria (memory leaks).
- Diferencias en los valores de memoria configurados para el servidor web (Apache/Nginx) y para la interfaz de línea de comandos (CLI).
Método 1: Aumentar el Límite de Memoria en el archivo php.ini
La solución más directa es incrementar el parámetro memory_limit en la configuración de PHP.
- Accede a tu servidor mediante SSH o utiliza el administrador de archivos de tu hosting.
- Localiza el archivo
php.inicorrespondiente a tu versión de PHP. A menudo hay uno para el servidor web y otro para CLI. - Abre el archivo y busca la línea que define el límite de memoria:
memory_limit = 256M - Modifica el valor a un mínimo recomendado para Magento 2 (por ejemplo, 2G o -1 para ilimitado temporalmente):
memory_limit = 2G - Guarda los cambios y reinicia tu servicio web (Apache o PHP-FPM) ejecutando:
sudo systemctl restart php-fpm
Método 2: Modificar el Límite de Memoria Directamente en la Línea de Comandos
Si el error ocurre al ejecutar comandos de Magento como bin/magento setup:upgrade, puedes pasar el parámetro de memoria directamente en la ejecución sin alterar el archivo global.
- Abre tu terminal SSH y navega hasta la raíz de tu instalación de Magento.
- Ejecuta el comando agregando la directiva
-d memory_limitde la siguiente manera: php -d memory_limit=2G bin/magento setup:upgrade- Si vas a realizar una compilación completa, utiliza:
php -d memory_limit=4G bin/magento setup:di:compile
Método 3: Ajustar el Límite en el Archivo .htaccess (Entornos Compartidos)
Si utilizas un alojamiento compartido donde no tienes acceso directo a la modificación del archivo php.ini global, puedes recurrir al archivo .htaccess ubicado en el directorio raíz de Magento.
- Conéctate mediante FTP/SFTP o explorador de archivos a tu servidor.
- Busca el archivo oculto
.htaccessen la carpeta principal de tu tienda Magento 2. - Añade la siguiente línea de código dentro del archivo, preferiblemente al inicio:
php_value memory_limit 2G - Guarda los cambios y verifica si el error ha desaparecido al recargar tu tienda o volver a ejecutar el proceso crítico.