Introducción al Error de Memoria Agotada en PrestaShop
Uno de los problemas más frustrantes a los que se enfrentan los administradores de tiendas online es el temido mensaje Fatal error: Allowed memory size of X bytes exhausted en PrestaShop. Este fallo suele aparecer al generar módulos pesados, actualizar la tienda, importar grandes catálogos de productos o simplemente al navegar por el panel de administración (Back Office).
¿Cuáles son las Causas de este Error?
PrestaShop es un CMS robusto que requiere una cantidad considerable de recursos para ejecutar scripts complejos, consultas SQL masivas y renderizar plantillas de Smarty. Las causas principales incluyen:
- Un límite de memoria RAM configurado demasiado bajo en el archivo
php.inidel servidor. - Módulos de terceros mal optimizados que consumen recursos de forma excesiva.
- Procesos de importación masiva de productos que saturan la memoria disponible.
- Versiones de PHP obsoletas que gestionan la memoria de manera menos eficiente.
Método 1: Aumentar el Límite de Memoria en el archivo php.ini
La solución más directa es incrementar el parámetro memory_limit en la configuración de PHP de tu servidor web.
- Accede al panel de control de tu hosting (cPanel, Plesk, etc.) o conéctate vía SSH.
- Busca la herramienta de selección de versión de PHP o localiza el archivo
php.inien la raíz de tu instalación. - Modifica la siguiente línea estableciendo un valor superior, por ejemplo, 512M o 1024M:
memory_limit = 512M - Guarda los cambios y reinicia el servicio web (Apache o Nginx) si fuera necesario.
Método 2: Modificar el archivo .htaccess
Si tu proveedor de hosting no te permite modificar el archivo php.ini global, puedes intentar forzar el incremento de memoria a través del archivo .htaccess ubicado en el directorio raíz de tu tienda PrestaShop.
- Accede por FTP o Administrador de Archivos a la raíz de tu PrestaShop.
- Localiza y edita el archivo llamado
.htaccess(asegúrate de ver los archivos ocultos). - Añade la siguiente directiva al inicio o al final del archivo:
php_value memory_limit 512M - Guarda los cambios y comprueba si el error ha desaparecido actualizando tu tienda.
Método 3: Definir el límite en el archivo defines.inc.php de PrestaShop
PrestaShop permite forzar ciertos parámetros de memoria directamente desde su código fuente mediante el archivo de configuración global.
- Navega hasta la ruta
config/defines.inc.phpen tu servidor. - Abre el archivo con un editor de código.
- Busca o añade la siguiente línea de código para definir un límite superior de memoria antes de que cargue el núcleo del sistema:
@ini_set('memory_limit', '512M'); - Guarda el archivo y limpia la caché de PrestaShop para aplicar los cambios correctamente.