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
Hardware

Cómo Solucionar los Pitidos de la Placa Base (Beep Codes) de Forma Definitiva

Descubre qué significan los molestos pitidos que emite tu ordenador al arrancar y cómo solucionar el fallo de hardware asociado de forma definitiva.

Leer guía completa →
Windows

Cómo Solucionar el Error Código 0x80070002 en Windows de Forma Definitiva

El código de error 0x80070002 en Windows suele aparecer durante la instalación de actualizaciones o al usar Windows Update. Aprende a solucionarlo definitivamente.

Leer guía completa →
Magento

Cómo Solucionar el Error de Dependencias de Composer en Magento 2 de Forma Definitiva

Soluciona los molestos conflictos de versiones en Composer al actualizar tu tienda Magento 2. Guía técnica avanzada para desarrolladores.

Leer guía completa →