¿Qué es el error Allowed Memory Size Exhausted en Magento?
El error de límite de memoria agotada (Allowed Memory Size Exhausted) es uno de los problemas más frecuentes a los que se enfrentan los administradores de tiendas e-commerce desarrolladas en Magento. Ocurre cuando un script PHP, ya sea durante la compilación, la ejecución de un comando de consola o la carga de una página pesada, intenta consumir más recursos de los que el servidor tiene permitidos para ese proceso en específico.
Principales causas del error de memoria en Magento
Magento es una plataforma sumamente robusta que requiere una gran cantidad de recursos del servidor. Entre las causas más comunes de este fallo se encuentran:
- Un valor demasiado bajo en la directiva
memory_limitdentro del archivo de configuraciónphp.ini. - Ejecución de comandos pesados de la consola CLI de Magento (como
setup:upgradeodi:compile) con un límite de memoria insuficiente para la interfaz de comandos. - Módulos de terceros mal optimizados que generan bucles o fugas de memoria durante la carga de datos.
Método 1: Aumentar el límite de memoria en el archivo php.ini
La forma más directa de solucionar este inconveniente es modificar el archivo de configuración de PHP en tu servidor.
- Accede a tu servidor mediante SSH o utiliza el explorador de archivos de tu panel de control (cPanel, Plesk, etc.).
- Localiza el archivo
php.inicorrespondiente a la versión de PHP que está utilizando tu tienda Magento (por ejemplo,/etc/php/8.1/fpm/php.ini). - Busca la línea que define el parámetro
memory_limit. - Modifica el valor asignado por uno mayor, idealmente de 2G o superior para Magento 2:
memory_limit = 2G - Guarda los cambios y reinicia el servicio web de tu servidor (Apache o Nginx) y PHP-FPM con el comando correspondiente, por ejemplo:
sudo systemctl restart php8.1-fpm
Método 2: Modificar el límite de memoria para comandos CLI
Si el error aparece cuando ejecutas comandos en la terminal, es probable que la versión de PHP de la línea de comandos tenga un límite diferente al del servidor web.
- Abre tu terminal SSH y ejecuta el comando de Magento aumentando el límite de memoria de manera temporal directamente en la instrucción:
php -d memory_limit=4G bin/magento setup:upgrade - Si utilizas Composer de forma habitual para actualizar dependencias, también puedes prevenir este fallo ejecutando:
COMPOSER_MEMORY_LIMIT=-1 composer update
Conclusión
Gestionar adecuadamente los recursos del servidor es vital para el rendimiento de un e-commerce. Al ampliar el límite de memoria para PHP y la interfaz de comandos, evitarás que este molesto error interrumpa la experiencia de compra de tus clientes en Magento.