Introducción
Uno de los problemas más comunes y frustrantes a los que se enfrentan los administradores y desarrolladores de tiendas e-commerce es el error Allowed Memory Size Exhausted en Magento 2. Este fallo suele interrumpir tareas críticas como la compilación de código, la actualización de módulos o la ejecución del indexador por consola.
¿Cuáles son las causas del error de memoria en Magento 2?
Magento es una plataforma robusta y compleja basada en componentes que requiere una cantidad considerable de recursos del servidor. Las causas principales de este error incluyen:
- Un límite de memoria de PHP configurado por debajo de los requisitos recomendados por Adobe Magento.
- Ejecución de procesos pesados en la línea de comandos (CLI) utilizando una versión o configuración de PHP diferente al entorno web.
- Módulos de terceros mal optimizados que generan fugas de memoria (memory leaks).
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 global de 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 tienda Magento. Si usas CLI y Apache/Nginx, asegúrate de actualizar ambos entornos. - Busca la línea
memory_limity modifica su valor actual (que suele estar en 256M o 512M) a un valor superior recomendado, por ejemplo:memory_limit = 2G. - Guarda los cambios y reinicia el servicio web (por ejemplo,
sudo systemctl restart php8.1-fpmo reiniciando Apache).
Método 2: Modificar el límite de memoria directamente en la línea de comandos (CLI)
Si el error ocurre al ejecutar comandos de Magento como bin/magento setup:upgrade o bin/magento setup:di:compile, puedes forzar un mayor límite de memoria directamente en la ejecución:
- Abre tu terminal SSH y conéctate a la raíz de tu proyecto Magento.
- Ejecuta el comando agregando la directiva de PHP para el tamaño de memoria, de la siguiente manera:
php -d memory_limit=2G bin/magento setup:di:compile- Comprueba si el proceso finaliza correctamente sin arrojar la excepción de memoria agotada.
Método 3: Ajustar el archivo .htaccess (Entornos Apache)
Si tu servidor utiliza Apache y no tienes acceso root para modificar el archivo php.ini principal, puedes intentar sobrescribir el valor mediante el archivo .htaccess ubicado en el directorio raíz de Magento:
- Abre el archivo
.htaccessen tu editor de código preferido. - Busca la sección correspondiente a las configuraciones de PHP y añade la siguiente línea:
php_value memory_limit 2G- Guarda el archivo y verifica el funcionamiento de tu tienda en el navegador y en el panel de administración.