Introducción al Error de Límite de Memoria en Magento 2
Uno de los problemas más comunes a los que se enfrentan los administradores de tiendas online y desarrolladores al trabajar con Magento 2 es el error crítico Allowed memory size exhausted. Este fallo interrumpe procesos vitales como la compilación de código, la ejecución de la caché, la indexación o la actualización de módulos, deteniendo por completo el flujo de trabajo en tu e-commerce.
¿Cuáles son las causas principales de este error en Magento?
Magento 2 es una plataforma sumamente robusta que requiere una gran cantidad de recursos de servidor para operar con fluidez. Las causas más frecuentes de este problema incluyen:
- Un valor de
memory_limitinsuficiente en el archivo de configuraciónphp.ini. - Ejecución de comandos pesados de la consola CLI (como
bin/magento setup:upgradeosetup:di:compile) sin asignar la memoria adecuada. - Módulos de terceros mal optimizados que generan fugas de memoria (memory leaks).
- Configuración deficiente del servidor web (Apache/Nginx) combinada con PHP-FPM.
Método 1: Aumentar el Memory Limit en el archivo php.ini
La solución más directa es incrementar el límite de memoria asignado a PHP. Sigue estos pasos para aplicarlo correctamente:
- Accede a tu servidor mediante SSH o utiliza el Administrador de Archivos de tu panel de control (cPanel, Plesk, etc.).
- Localiza el archivo
php.inicorrespondiente a la versión de PHP que utiliza tu tienda Magento. Si usas CLI y web, es posible que debas editar ambos archivos. - Busca la directiva
memory_limity cambia su valor a un mínimo recomendado para Magento 2 (por ejemplo, 2G o 4G):memory_limit = 2G - Guarda los cambios y reinicia tu servidor web o el servicio PHP-FPM ejecutando:
sudo systemctl restart php-fpm
Método 2: Asignar memoria directamente al ejecutar comandos CLI
Si el error ocurre únicamente al ejecutar tareas desde la terminal con el comando bin/magento, puedes sobreescribir el límite de memoria temporalmente añadiendo la directiva de PHP directamente en la línea de comandos:
Ejecuta tu comando agregando -d memory_limit=-1 (sin límite) o especificando una cantidad alta:
php -d memory_limit=2G bin/magento setup:di:compileEste método es altamente efectivo para evitar interrupciones durante procesos pesados de compilación y despliegue.
Método 3: Modificar el archivo .htaccess (Para servidores Apache)
Si tu hosting utiliza Apache y no tienes acceso root para modificar el php.ini global, puedes intentar aplicar el cambio a nivel de directorio mediante el archivo .htaccess ubicado en la raíz de tu instalación de Magento:
- 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 2G - Guarda los cambios y verifica si el error ha desaparecido al recargar tu tienda o panel de administración.