Introducción al Error de Límite de Memoria en Magento 2
Uno de los problemas más frustrantes a los que se enfrentan los administradores de tiendas e-commerce en Magento 2 es el famoso error de desbordamiento de memoria, comúnmente conocido como Allowed memory size exhausted. Este fallo suele interrumpir tareas críticas como la compilación de código, la indexación o la ejecución de comandos a través de la interfaz de comandos (CLI).
Causas Principales del Error Memory Size Exhausted
Magento 2 es una plataforma sumamente robusta y compleja que requiere una gran cantidad de recursos del servidor para procesar operaciones pesadas. Las causas más comunes de este problema son:
- Un valor de
memory_limitinsuficiente configurado en el archivophp.inidel servidor. - Ejecución de procesos en segundo plano o comandos de compilación (
setup:di:compile) que consumen demasiados recursos. - Módulos de terceros mal optimizados que generan fugas de memoria durante su ejecución.
Método 1: Aumentar el Memory Limit en el archivo php.ini
La solución más directa y recomendada es incrementar 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 está utilizando tu tienda Magento. Si no estás seguro, puedes ejecutar el comandophp -i | grep php.inien la terminal. - Abre el archivo con un editor de texto (como nano o vim) y busca la directiva
memory_limit. - Modifica el valor actual por uno mayor, por ejemplo, 2G o 4G, dependiendo de los recursos disponibles en tu servidor:
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 Temporalmente desde la Línea de Comandos
Si el error ocurre específicamente al ejecutar comandos de la consola de Magento, puedes sobrescribir el límite de memoria directamente en la llamada utilizando el parámetro de configuración de PHP:
- Abre la terminal SSH y navega hasta la raíz de tu instalación de Magento 2.
- Ejecuta el comando problemático añadiendo
-d memory_limit=-1al principio para eliminar restricciones de memoria temporalmente:
php -d memory_limit=-1 bin/magento setup:upgrade- Una vez finalizado el proceso, el comando se completará sin arrojar el error de memoria agotada.
Método 3: Ajustar los Recursos en el archivo .htaccess
Si tu servidor utiliza Apache y no tienes acceso directo para modificar el archivo php.ini global, puedes intentar aumentar el límite a nivel de directorio mediante el archivo .htaccess ubicado en la raíz pública de Magento:
- Entra al Administrador de Archivos de tu hosting o conéctate por FTP/SFTP.
- Busca el archivo oculto
.htaccessen la raíz de Magento. - Añade la siguiente línea al final del archivo:
php_value memory_limit 2G- Guarda el archivo y comprueba si tu tienda Magento vuelve a funcionar con normalidad.