Cómo Solucionar el Error 'Allowed Memory Size Exhausted' en Magento 2 Paso a Paso

Cómo Solucionar el Error 'Allowed Memory Size Exhausted' en Magento 2 Paso a Paso
Anuncio relacionado

Introducción al Error de Límite de Memoria en Magento 2

Una de las pesadillas más comunes para los administradores de tiendas e-commerce desarrolladas en Magento 2 es encontrarse con el temido mensaje Fatal error: Allowed memory size of X bytes exhausted. Este fallo ocurre típicamente al ejecutar comandos de la consola como bin/magento setup:upgrade, durante la compilación de código, o al intentar cargar páginas con un alto tráfico y catálogos extensos. Afortunadamente, tiene solución directa ajustando los parámetros del servidor.

Causas Principales de la Falta de Memoria

Magento 2 es un framework robusto que requiere una cantidad considerable de recursos para procesar inyecciones de dependencias, generar archivos estáticos y compilar la base de datos. Las causas más frecuentes son:

  • Un límite de memoria (memory_limit) configurado demasiado bajo en el archivo php.ini del servidor.
  • Ejecución de procesos pesados en la línea de comandos utilizando una versión de PHP diferente a la del servidor web.
  • Módulos o temas personalizados mal optimizados que generan fugas de memoria en bucles infinitos.

Método 1: Aumentar el memory_limit en el archivo php.ini

El primer paso y el más efectivo consiste en incrementar el límite de memoria asignado a PHP. Sigue estos pasos:

  1. Accede a tu servidor mediante SSH o utiliza el administrador de archivos de tu hosting.
  2. Localiza el archivo php.ini correspondiente a la versión de PHP que utiliza tu tienda Magento (por ejemplo, /etc/php/8.1/fpm/php.ini o la ruta equivalente en tu panel cPanel).
  3. Abre el archivo con un editor de texto como nano o vim y busca la directiva memory_limit.
  4. Modifica el valor actual por uno superior, recomendado para Magento 2 (al menos 2G o 4G): memory_limit = 2G
  5. Guarda los cambios y reinicia el servicio web correspondiente (Apache o Nginx) junto con PHP-FPM: sudo systemctl restart php8.1-fpm

Método 2: Modificar el límite de memoria directamente en la línea de comandos

Si el error aparece únicamente al ejecutar tareas de mantenimiento mediante SSH con el comando bin/magento, es muy probable que la configuración de la CLI de PHP esté utilizando el archivo php.ini predeterminado en lugar del configurado para el servidor web. Puedes solucionar esto pasando el parámetro directamente en la ejecución:

Ejecuta tus comandos de Magento añadiendo la bandera para ampliar la memoria de forma temporal:

php -d memory_limit=4G bin/magento setup:upgrade
php -d memory_limit=4G bin/magento setup:di:compile
php -d memory_limit=4G bin/magento setup:static-content:deploy -f

Si deseas que este cambio sea permanente para la terminal, puedes editar el archivo php.ini ubicado en la ruta de la CLI que te devuelve el comando php --ini.

Conclusión

El error de memoria agotada en Magento 2 es fácil de mitigar una vez que identificamos qué entorno (web o CLI) está restringiendo los recursos. Asegurarse de mantener un memory_limit de al menos 2GB o 4GB garantizará que los despliegues y la indexación de tu e-commerce fluyan sin interrupciones.

Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
PrestaShop

Cómo Solucionar el Error 500 en PrestaShop de Forma Definitiva

El Error 500 es uno de los problemas más frustrantes en PrestaShop. Descubre cómo diagnosticar la falla y aplicar la solución definitiva para recuperar tu tienda.

Leer guía completa →
Hardware

Cómo Solucionar el Error de Pitidos en la Placa Base (Beep Codes) de Forma Definitiva

¿Tu ordenador emite pitidos extraños al encenderse y no da video? Aprende a interpretar los códigos de beep y repara tu PC hoy mismo.

Leer guía completa →
Magento

Cómo Solucionar el Error de Bloqueo en la Indexación de Magento 2 Definitivamente

Soluciona los problemas de indexadores bloqueados en Magento 2 con este tutorial técnico paso a paso. Restaura la velocidad de tu tienda online fácilmente.

Leer guía completa →