Aumentar el límite de memoria PHP en PrestaShop
¿Tu tienda PrestaShop se está volviendo lenta, muestra un molesto mensaje de error en blanco o no te deja instalar módulos? El culpable más común es un límite de memoria PHP demasiado bajo. PrestaShop es una plataforma robusta, pero gestionar catálogos grandes, muchos módulos o un tráfico elevado requiere un buen "estómago" de memoria.
En esta guía te explicaré cómo aumentar el límite de memoria PHP en PrestaShop paso a paso, tanto si tienes un hosting compartido como un servidor VPS o dedicado. No necesitas ser un experto en Linux, solo seguir las instrucciones al pie de la letra.
¿Por qué es importante aumentar la memoria PHP en PrestaShop?
El parámetro memory_limit define la cantidad máxima de memoria RAM que un script de PHP (como PrestaShop) puede consumir. Cuando tu tienda alcanza ese límite, ocurren cosas malas:
- Pantalla blanca de la muerte (WSOD) en el front-office o back-office.
- Errores 500 Internal Server Error sin más explicación.
- Imposibilidad de instalar o actualizar módulos y temas.
- El proceso de importación de productos se queda colgado.
- El carrito de compras no se actualiza o da errores extraños.
PrestaShop, por sí solo con los módulos básicos, ya necesita al menos 128 MB. Pero para un funcionamiento fluido con catálogos de más de 1000 productos, varios módulos activos y un tema personalizado, lo recomendable es 256 MB o incluso 512 MB en tiendas muy grandes.
[INFO] El valor por defecto en muchos servidores compartidos suele ser 32 MB o 64 MB, insuficiente incluso para una instalación limpia de PrestaShop. Por eso es una de las primeras configuraciones que debes revisar.
Antes de empezar: ¿Cuánta memoria tiene tu PrestaShop ahora?
Primero, averigua el valor actual. Es muy sencillo:
- Ve al Back Office de tu PrestaShop.
- En el menú superior, haz clic en Parámetros avanzados > Información.
- Busca la línea Límite de memoria (o
memory_limit). Ahí verás el valor actual (ej:128M,256M, etc.).
Si ves un valor bajo (menor de 128M), o si la línea pone -1 (que significa "sin límite", pero no es común en entornos compartidos), sabes que necesitas cambiarlo.
Ahora, vamos a configurar PHP PrestaShop correctamente.
Método 1: Modificar el archivo php.ini (Recomendado para VPS/Dedicado)
Este es el método más potente y permanente. Solo es posible si tienes acceso de administrador (root) a tu servidor Linux. Necesitas encontrar el archivo php.ini que tu PrestaShop está usando.
Paso 1: Localizar el archivo php.ini
Conéctate a tu servidor por SSH (con un cliente como PuTTY o Terminal) y ejecuta:
php --ini
Busca la línea que dice Loaded Configuration File. Anota la ruta completa (ej: /etc/php/8.1/cli/php.ini). Pero atención: PrestaShop normalmente se ejecuta con PHP-FPM o Apache, no con la línea de comandos. La ruta del php.ini para el servidor web suele ser diferente, por ejemplo:
/etc/php/8.1/apache2/php.ini(si usas Apache)/etc/php/8.1/fpm/php.ini(si usas Nginx + PHP-FPM)
[TIP] Si usas Syspanel (el panel de control que mencionaste, antes conocido como HestiaCP), puedes acceder a tu servidor por SSH en el puerto 2106. Una vez dentro, la ruta típica del
php.inies:/etc/php/8.x/fpm/php.ini(donde8.xes tu versión de PHP, por ejemplo, 8.1).
Paso 2: Editar el archivo
Usa un editor de texto como nano o vim. Por ejemplo:
sudo nano /etc/php/8.1/fpm/php.ini
Paso 3: Cambiar el valor de memory_limit
Dentro del archivo, busca la línea:
memory_limit = 128M
Cámbiala por:
memory_limit = 256M
Guarda el archivo (en nano: Ctrl+O, luego Enter, luego Ctrl+X).
Paso 4: Reiniciar PHP-FPM (o Apache)
Para que el cambio surta efecto, debes reiniciar el servicio.
- Si usas PHP-FPM (común con Nginx o Syspanel):
sudo systemctl restart php8.1-fpm - Si usas Apache:
sudo systemctl restart apache2
[WARNING] Si cambias el
php.iniequivocado (por ejemplo, el de CLI), el cambio no afectará a tu tienda PrestaShop. Asegúrate de modificar el que usa tu servidor web (Apache/Nginx).
Método 2: Usar el archivo .htaccess (Ideal para Hosting Compartido)
Si estás en un hosting compartido y no tienes acceso SSH, este es tu mejor aliado. El archivo .htaccess se encuentra en la raíz de tu instalación de PrestaShop (la carpeta donde está index.php).
Paso 1: Acceder al .htaccess
Conéctate por FTP a tu hosting (usa FileZilla, Cyberduck, etc.) o usa el administrador de archivos de tu panel de control (cPanel, DirectAdmin, Syspanel...).
Localiza el archivo .htaccess. Importante: Puede estar oculto. En FileZilla, activa la opción "Mostrar archivos ocultos" (Servidor > Forzar mostrar archivos ocultos).
Paso 2: Añadir la directiva
Abre .htaccess con un editor de texto plano (no Word). Busca la línea que dice # ~~start~~ (normalmente al principio). Inmediatamente después de esa línea, añade:
php_value memory_limit 256M
Guarda el archivo.
[INFO] Este método funciona si tu hosting permite la sobreescritura de directivas PHP desde
.htaccess. Si no funciona, prueba con el Método 3.
Método 3: Crear un archivo php.ini local (Para hosting con soporte de PHP personalizado)
Algunos hostings permiten que subas tu propio archivo php.ini a la raíz de tu sitio. Esto es común en paneles como cPanel con "MultiPHP INI Editor" o en Syspanel.
Paso 1: Subir el archivo
Crea un archivo de texto llamado exactamente php.ini (sin comillas) y dentro escribe:
memory_limit = 256M
Súbelo a la carpeta raíz de tu PrestaShop (donde está index.php).
Paso 2: Verificar
Vuelve al Back Office de PrestaShop > Parámetros avanzados > Información y comprueba que el valor ha cambiado.
[WARNING] No todos los hostings soportan archivos
php.inilocales. Si ves un error 500 después de subirlo, bórralo inmediatamente y prueba con el método.htaccess.
Método 4: Modificar el archivo config/defines.inc.php (Último recurso)
Este método es menos recomendado porque PrestaShop puede sobrescribirlo en una actualización. Pero puede funcionar si los anteriores fallan.
Paso 1: Editar el archivo
Localiza config/defines.inc.php en la raíz de tu PrestaShop. Ábrelo con un editor de texto.
Paso 2: Cambiar el valor
Busca esta línea:
define('_PS_MEMORY_LIMIT_', '128M');
Cámbiala por:
define('_PS_MEMORY_LIMIT_', '256M');
Guarda el archivo.
[WARNING] Si actualizas PrestaShop, este archivo se sobrescribe y perderás el cambio. Es mejor usar los métodos anteriores (php.ini o .htaccess).
Preguntas Frecuentes (FAQ)
¿Cuánto es el límite de memoria PHP recomendado para PrestaShop?
- Mínimo absoluto: 128 MB (para una tienda muy básica).
- Recomendado: 256 MB (para la mayoría de tiendas).
- Para catálogos grandes (>10,000 productos) o muchos módulos: 512 MB o más.
¿Qué pasa si pongo un valor demasiado alto, como 1024M?
No pasa nada malo, pero estás desperdiciando recursos del servidor. PHP solo usará la memoria que necesite, pero si pones un límite muy alto y tu servidor tiene poca RAM, podrías saturarlo. Lo ideal es empezar con 256 MB y subir solo si ves errores.
¿Cómo puedo saber si mi hosting compartido permite cambiar el memory_limit?
Pregunta a tu proveedor de hosting. Muchos hostings compartidos bloquean esta configuración por seguridad. Si no puedes cambiarlo, considera migrar a un VPS o a un hosting especializado en PrestaShop.
Uso Syspanel (HestiaCP), ¿cómo cambio el memory_limit?
Accede a tu servidor por SSH en el puerto 2106. Luego, localiza el archivo php.ini de la versión de PHP que usas, generalmente en /etc/php/8.x/fpm/php.ini. Edítalo, cambia el valor y reinicia el servicio PHP-FPM con:
sudo systemctl restart php8.x-fpm
(Reemplaza 8.x por tu versión, por ejemplo 8.1).
Mi tienda sigue dando error después de aumentar la memoria, ¿qué hago?
Puede que el problema no sea solo la memoria. Revisa:
- Errores de PHP: Activa el modo debug de PrestaShop en
/config/defines.inc.phpcambiando_PS_MODE_DEV_atrue. - Logs del servidor: Busca errores en
/var/log/apache2/error.logo/var/log/php8.1-fpm.log. - Módulos conflictivos: Desactiva todos los módulos no esenciales y vuelve a activarlos uno por uno para encontrar el culpable.
Resumen rápido
| Método | ¿Cuándo usarlo? | Dónde editar |
|---|---|---|
| php.ini | Tienes acceso root al servidor (VPS/Dedicado). | Archivo php.ini del servidor web. |
| .htaccess | Hosting compartido que permite sobreescritura. | Archivo .htaccess en la raíz de PrestaShop. |
| php.ini local | Hosting que soporta archivos PHP personalizados. | Archivo php.ini en la raíz de PrestaShop. |
| defines.inc.php | Último recurso, cuando los demás fallan. | Archivo config/defines.inc.php. |
Aumentar la memoria PHP de PrestaShop es una tarea sencilla que puede resolver la mayoría de los problemas de rendimiento y errores. Empieza con 256 MB, y si ves que tu tienda crece, no dudes en subirlo. ¡Tu tienda te lo agradecerá con una navegación más rápida y estable!
[TIP] Después de hacer el cambio, siempre limpia la caché de PrestaShop en Parámetros avanzados > Rendimiento > Forzar compilación y Limpiar caché.
