¿Qué es el Error Allowed Memory Size Exhausted en Magento 2?
El error de límite de memoria superado es uno de los problemas más comunes a los que se enfrentan los administradores y desarrolladores de tiendas en línea basadas en Magento 2 (Adobe Commerce). Este fallo ocurre típicamente al ejecutar tareas pesadas en la línea de comandos (CLI) como la compilación de dependencias, la actualización de la base de datos o la regeneración de índices, así como durante la navegación de los clientes en módulos complejos.
Principales Causas del Error de Memoria en Magento
Magento 2 es una plataforma robusta que requiere una cantidad considerable de recursos del servidor para procesar operaciones complejas. Las causas más frecuentes de este error incluyen:
- Un valor de
memory_limitconfigurado demasiado bajo en el archivophp.ini. - Ejecución de scripts pesados de PHP en entornos de producción con restricciones estrictas de RAM.
- Módulos de terceros mal optimizados que generan fugas de memoria (memory leaks).
Métodos para Solucionar el Error de Memoria Paso a Paso
A continuación, te presentamos los métodos más efectivos para ampliar el límite de memoria y evitar que este error interrumpa el funcionamiento de tu tienda e-commerce.
Método 1: Modificar el archivo php.ini global o específico
La solución principal consiste en aumentar el límite de memoria asignado a PHP. Sigue estos pasos:
- Accede a tu servidor mediante SSH o utiliza el panel de control de tu hosting (cPanel o Plesk).
- Localiza el archivo
php.inicorrespondiente a la versión de PHP que utiliza tu Magento (por ejemplo, PHP 8.1 o 8.2). - Busca la directiva
memory_limity cambia su valor a un mínimo recomendado de 2G o 4G:memory_limit = 2G. - Guarda los cambios y reinicia tu servicio web (Apache o Nginx) junto con PHP-FPM ejecutando:
sudo systemctl restart php8.1-fpm.
Método 2: Aumentar el límite de memoria directamente en la línea de comandos (CLI)
Si el error ocurre al ejecutar comandos de Magento, puedes forzar un límite de memoria superior directamente desde la consola usando la bandera -d memory_limit:
- Abre tu terminal SSH y navega hasta la raíz de tu instalación de Magento.
- Ejecuta el comando problemático añadiendo el parámetro de memoria. Por ejemplo, para la compilación:
php -d memory_limit=4G bin/magento setup:di:compile. - Verifica que el proceso finalice correctamente sin mostrar advertencias de memoria agotada.
Método 3: Revisar el archivo .htaccess en servidores Apache
Si tu servidor utiliza Apache y no tienes acceso directo al archivo php.ini principal, puedes intentar sobrescribir la directiva a través del archivo .htaccess ubicado en la raíz de Magento:
- Abre el archivo
.htaccesscon un editor de texto. - Busca la sección correspondiente a las configuraciones de PHP o añade la siguiente línea al final del archivo:
php_value memory_limit 2G. - Guarda el archivo y limpia la caché de tu tienda para aplicar los cambios.