Introducción
Uno de los problemas más frustrantes a los que se enfrentan los desarrolladores y administradores de tiendas e-commerce es el error Allowed memory size exhausted en Magento 2. Este fallo crítico suele aparecer durante la compilación de código, la ejecución de la indexación o al actualizar módulos a través de la línea de comandos (CLI), deteniendo por completo las operaciones del sitio.
Causas Principales del Error de Memoria en Magento 2
Magento 2 es una plataforma robusta que requiere una gran cantidad de recursos de servidor para procesar operaciones complejas. Las causas más comunes de este problema incluyen:
- Un límite de memoria PHP configurado por debajo de los requisitos recomendados por Adobe para Magento 2.
- Ejecución de tareas pesadas en la consola SSH utilizando una versión de PHP diferente a la del servidor web.
- Procesos de compilación (di:compile) o despliegue de contenido estático que sobrepasan el umbral asignado.
Método 1: Aumentar el límite de memoria en el archivo php.ini
Para solucionar este problema de raíz, debes incrementar el parámetro memory_limit en la configuración de PHP de tu servidor.
- Accede a tu servidor mediante SSH o utiliza el panel de control de tu hosting (como cPanel o Plesk).
- Localiza el archivo
php.inicorrespondiente a la versión de PHP que utiliza tu tienda Magento (por ejemplo, PHP 8.1 o 8.2). - Busca la línea que define el límite de memoria y cámbiala al menos a 2GB o 4GB:
memory_limit = 2G - Guarda los cambios y reinicia tu servidor web (Apache o Nginx) y el servicio PHP-FPM para aplicar las modificaciones.
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 via CLI (por ejemplo, bin/magento setup:upgrade), puedes forzar un límite de memoria superior directamente en la ejecución.
- Abre tu terminal SSH y conéctate al directorio raíz de tu instalación de Magento 2.
- Ejecuta el comando agregando la directiva de PHP para aumentar la memoria de forma temporal:
php -d memory_limit=4G bin/magento setup:di:compile - Verifica que el proceso finalice correctamente sin arrojar excepciones de memoria agotada.
Método 3: Optimizar la configuración de OPcache y la caché de Magento
A veces, la falta de optimización en el almacenamiento en caché provoca fugas de memoria. Asegúrate de configurar correctamente OPcache en tu php.ini:
- Abre tu archivo
php.iniy asegúrate de que OPcache esté habilitado y con suficiente memoria asignada:opcache.memory_consumption=512opcache.max_accelerated_files=60000 - Limpia la caché de Magento ejecutando:
php -d memory_limit=2G bin/magento cache:flush