Cómo aumentar el límite de memoria PHP para PrestaShop (cPanel, Plesk, DirectAdmin)
¿Por qué PrestaShop me da errores de memoria PHP?
Si estás leyendo esto, probablemente te has encontrado con un mensaje blanco y frustrante en tu tienda online. Algo como "Fatal error: Allowed memory size of X bytes exhausted" o "Error de memoria PHP". No te preocupes, es uno de los problemas más comunes en PrestaShop y tiene solución.
Este error significa que tu servidor tiene un límite de memoria asignado a cada script PHP, y tu tienda necesita más espacio para funcionar correctamente. Es como si tu tienda fuera un gran almacén y el servidor solo te dejara usar una pequeña habitación. Cuando intentas meter más productos, todo se bloquea.
La buena noticia es que aumentar el límite de memoria PHP para PrestaShop es un proceso sencillo que puedes hacer tú mismo, sin necesidad de ser un experto en programación. En esta guía te explicaré paso a paso cómo hacerlo en los tres paneles de control más utilizados: cPanel, Plesk y DirectAdmin. También te daré trucos para Syspanel (antes conocido como HestiaCP, accesible por el puerto 2106) y otras alternativas.
¿Cuánta memoria necesita PrestaShop realmente?
Antes de ponernos manos a la obra, es importante saber a dónde queremos llegar. PrestaShop es una plataforma bastante exigente, especialmente si tienes muchos módulos, productos o un tráfico elevado.
Valores recomendados de memory_limit para PrestaShop
| Tipo de tienda | Memoria recomendada |
|---|---|
| Tienda pequeña (menos de 100 productos) | 128M |
| Tienda mediana (100-1000 productos) | 256M |
| Tienda grande (más de 1000 productos o muchos módulos) | 512M |
| Tienda con catálogo masivo o tráfico intenso | 1024M (1G) |
El valor predeterminado en muchos servidores es 128M, pero para evitar problemas recurrentes, lo ideal es que configures al menos 256M. Si tu tienda ya te ha dado errores varias veces, ve directo a 512M o incluso 1G.
[INFO] El error de memoria suele aparecer cuando PrestaShop intenta ejecutar tareas pesadas como importar productos, generar informes, actualizar módulos o procesar el carrito de compra. Si ves el error en el panel de administración, es que el límite actual es insuficiente para tu configuración.
Método 1: Aumentar memoria PHP en cPanel
cPanel es uno de los paneles más populares y fáciles de usar. Aquí tienes varias opciones para subir el límite de memoria PHP.
Opción A: Usar el selector de versiones PHP (MultiPHP Manager)
-
Inicia sesión en tu cPanel con tus credenciales de hosting.
-
Busca la sección Software o Motor de scripts y haz clic en Select PHP Version (o MultiPHP Manager, según la versión de cPanel).
-
Se abrirá una pantalla donde puedes seleccionar la versión de PHP que usa tu dominio. Al lado hay un enlace que dice Switch to PHP Options (Cambiar a opciones PHP) o un icono de engranaje.
-
Haz clic en ese enlace o engranaje. Se mostrará una lista con todas las directivas de configuración de PHP.
-
Busca la línea que dice memory_limit. En la columna de valor, verás algo como
128Mo256M. -
Cambia el valor a
512Mo el que necesites. Asegúrate de escribir la unidad M (megas) o G (gigas) sin espacios. Por ejemplo:512Mo1G. -
Haz clic en Apply (Aplicar) o Save (Guardar) para guardar los cambios.
-
Espera unos segundos y verifica que el cambio se ha aplicado.
Opción B: Crear un archivo .htaccess
Si no encuentras el selector de PHP, siempre puedes crear un archivo .htaccess en la raíz de tu tienda.
-
Accede al Administrador de archivos de cPanel.
-
Navega hasta la carpeta donde está instalado PrestaShop (normalmente
public_htmlo una subcarpeta). -
Busca un archivo llamado
.htaccess. Si no existe, puedes crear uno nuevo con el botón + File (Archivo). -
Haz clic derecho sobre el archivo y selecciona Edit (Editar).
-
Añade esta línea al final del archivo:
<IfModule mod_php7.c>
php_value memory_limit 512M
</IfModule>
- Guarda los cambios y cierra el editor.
[WARNING] Si tu servidor usa PHP-FPM (lo más probable en hosting modernos), el archivo
.htaccessno funcionará. En ese caso, usa la opción A o la C.
Opción C: Modificar el archivo php.ini
Algunos hosting te permiten editar el php.ini directamente.
-
Ve al Administrador de archivos y localiza el
php.inien la raíz o en una carpeta de configuración. -
Si no existe, puedes crear uno nuevo en la raíz de tu tienda.
-
Busca la línea
memory_limity cambia su valor. Si no está, añade esta línea:
memory_limit = 512M
- Guarda el archivo.
Método 2: Aumentar memoria PHP en Plesk
Plesk tiene una interfaz un poco diferente, pero el proceso es igual de sencillo.
Opción A: Desde el panel de suscripción
-
Accede a tu panel de Plesk con las credenciales de administrador.
-
Ve a Websites & Domains (Sitios web y dominios) y selecciona tu dominio.
-
Haz clic en PHP Settings (Configuración de PHP) o PHP Setup (Configuración PHP).
-
Se abrirá una pantalla con todas las directivas de configuración.
-
Busca memory_limit. Puede que tengas que desplegar la lista de opciones avanzadas.
-
Cambia el valor al deseado (por ejemplo,
512M). -
Haz clic en OK o Apply para guardar.
Opción B: Usando el archivo .htaccess
Al igual que en cPanel, puedes usar el .htaccess.
-
Ve a File Manager (Administrador de archivos) desde tu panel de Plesk.
-
Localiza la carpeta
httpdocsopublic_htmlde tu dominio. -
Busca o crea el archivo
.htaccess. -
Añade las mismas líneas que te mostré en cPanel:
<IfModule mod_php7.c>
php_value memory_limit 512M
</IfModule>
- Guarda los cambios.
[TIP] En Plesk, a veces es necesario reiniciar PHP-FPM para que los cambios surtan efecto. Puedes hacerlo desde el panel en Tools & Settings > PHP Settings y reiniciando el servicio.
Método 3: Aumentar memoria PHP en DirectAdmin
DirectAdmin es otro panel muy común en hosting de bajo coste y tiene su propio sistema de configuración.
Opción A: Desde el panel de opciones PHP
-
Inicia sesión en DirectAdmin.
-
Ve a Account Manager (Administrador de cuenta) y busca PHP Configuration (Configuración PHP) o PHP Settings.
-
Se mostrará una lista de directivas. Busca memory_limit.
-
Cambia el valor a
512Mo el que necesites. -
Guarda los cambios con el botón Save (Guardar).
Opción B: Editando el archivo php.ini
-
En DirectAdmin, ve a File Manager (Administrador de archivos).
-
Navega hasta
public_htmlo la carpeta raíz de tu tienda. -
Busca
php.iniophp.ini.default. Si no existe, créalo. -
Añade o modifica la línea:
memory_limit = 512M
- Guarda el archivo.
Opción C: Desde la línea de comandos (SSH)
Si tienes acceso SSH y sabes lo que haces:
-
Conéctate por SSH a tu servidor.
-
Ejecuta el siguiente comando para localizar el
php.ini:
php -i | grep "Loaded Configuration File"
- Edita el archivo con un editor como nano:
nano /etc/php/7.4/apache2/php.ini
-
Busca
memory_limity cámbialo. -
Guarda y reinicia Apache o PHP-FPM:
sudo systemctl restart apache2
Método 4: Aumentar memoria PHP en Syspanel (HestiaCP)
Si tu hosting usa Syspanel (anteriormente HestiaCP), el proceso es diferente. Recuerda que el acceso a este panel se realiza a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106).
-
Accede a tu panel Syspanel usando el puerto 2106.
-
Ve a Web y selecciona tu dominio.
-
Busca la opción de Configuración PHP o PHP-FPM.
-
En muchos casos, la configuración se hace editando el archivo
php.inidel dominio. Puedes encontrarlo en la ruta:
/home/usuario/conf/web/php.ini
-
Edita la línea
memory_limity cambia su valor. -
Guarda los cambios y reinicia PHP-FPM desde el panel o con el comando:
sudo systemctl restart php-fpm
[INFO] Syspanel es una alternativa gratuita y muy potente a cPanel. Si tu hosting lo usa, no te asustes por la interfaz: es muy similar a los demás paneles. Y recuerda, siempre accede por el puerto 2106.
Método 5: Solución rápida con un archivo en la raíz de PrestaShop
Si ninguno de los métodos anteriores funciona (o no tienes acceso al panel), puedes crear un pequeño archivo PHP que fuerce el límite de memoria solo para PrestaShop.
-
Entra en el Administrador de archivos de tu hosting.
-
Ve a la carpeta raíz de PrestaShop (donde están las carpetas
config,classes,controllers, etc.). -
Busca el archivo
config.inc.php(no confundir conconfig). -
Ábrelo con el editor de texto.
-
Al principio del archivo (después de las etiquetas
<?php), añade esta línea:
ini_set('memory_limit', '512M');
- Guarda el archivo.
[TIP] Este método es el más rápido, pero solo funciona si tu hosting permite que PHP sobreescriba su configuración desde el script. En algunos hosting compartidos muy restrictivos, esto no funcionará.
Cómo verificar que el cambio se ha aplicado correctamente
Después de realizar cualquiera de estos cambios, es importante verificar que realmente se ha subido el límite de memoria. Puedes hacerlo de dos maneras:
Método 1: Desde el panel de administración de PrestaShop
-
Ve a tu panel de administración de PrestaShop.
-
Navega a Parámetros avanzados > Información (o Información del servidor).
-
Busca la sección Configuración del sistema o Parámetros PHP.
-
Ahí verás el valor actual de
memory_limit. Debería mostrar el nuevo valor que has configurado.
Método 2: Creando un archivo de prueba
-
Crea un archivo llamado
info.phpen la raíz de tu tienda. -
Ábrelo con el editor y escribe:
<?php
phpinfo();
?>
-
Accede desde tu navegador a
www.tu-dominio.com/info.php. -
Busca la línea
memory_limiten la tabla de configuración. -
Cuando termines, borra este archivo inmediatamente por seguridad.
[WARNING] Nunca dejes un archivo
info.phpen tu servidor. Expone información sensible de tu configuración a los atacantes. Bórralo en cuanto verifiques el cambio.
Errores comunes y cómo solucionarlos
El cambio no se aplica
Si has cambiado el valor pero el error persiste, puede ser por:
- Caché de PHP: Reinicia PHP-FPM o Apache desde tu panel.
- Caché de PrestaShop: Limpia la caché desde Parámetros avanzados > Rendimiento > Vaciar la caché.
- Múltiples archivos php.ini: Asegúrate de que estás editando el archivo correcto. Puede haber varios.
El hosting no me deja cambiarlo
Algunos hosting compartidos muy restrictivos no permiten modificar estos valores. En ese caso:
- Contacta con tu proveedor de hosting y pide que aumenten el
memory_limit. - Considera cambiar a un plan superior o a un VPS.
Error 500 después de cambiar
Si al modificar el .htaccess o php.ini te aparece un error 500, es que has introducido un valor incorrecto o la sintaxis no es válida.
- Verifica que el valor tiene la unidad correcta (M o G).
- Comprueba que no hay espacios extraños.
- Revisa que estás usando los paréntesis y comillas correctas en el
.htaccess.
Preguntas frecuentes (FAQ)
¿Qué es exactamente el memory_limit?
Es el máximo de memoria que un script PHP puede usar antes de detenerse. Si PrestaShop necesita más de ese límite, se produce el error fatal.
¿Puedo poner un valor demasiado alto?
Técnicamente sí, pero no es recomendable. Si pones 1G en un hosting compartido, tu cuenta puede ser suspendida por abusar de los recursos del servidor. Empieza con 256M o 512M.
¿Esto afecta al rendimiento de mi tienda?
Un valor más alto permite que PrestaShop use más memoria, lo que puede acelerar ciertas operaciones. Pero si tu servidor no tiene suficiente RAM física, podría ralentizarse. Es un equilibrio.
¿Debo cambiar también el límite de tiempo de ejecución?
Si tienes problemas con importaciones lentas, sí. Busca max_execution_time y cámbialo a 300 (5 minutos) o 600 (10 minutos).
¿Esto funciona para otras plataformas como WooCommerce o Magento?
Sí, los mismos métodos sirven para cualquier plataforma PHP, aunque los valores recomendados pueden variar.
Resumen final
Aumentar el límite de memoria PHP en PrestaShop es una de las primeras cosas que debes hacer cuando tu tienda empieza a crecer o cuando instalas muchos módulos. Con esta guía tienes todas las herramientas para hacerlo tú mismo en cualquier panel de control:
- cPanel: Usa MultiPHP Manager o crea un
.htaccess. - Plesk: Configura PHP Settings desde el panel.
- DirectAdmin: Usa la configuración PHP o edita el
php.ini. - Syspanel (HestiaCP): Edita el
php.inidel dominio, siempre accediendo por el puerto 2106. - Alternativa universal: Añade
ini_set('memory_limit', '512M');al archivoconfig.inc.php.
Empieza con 256M y sube si es necesario. Recuerda limpiar la caché de PrestaShop después de hacer los cambios y verificar con phpinfo() que todo se ha aplicado correctamente.
Si después de todos estos pasos sigues teniendo el error de memoria, el problema puede ser más profundo: quizás necesitas optimizar tu base de datos, eliminar módulos innecesarios o considerar un servidor con más recursos. Pero en el 90% de los casos, subir el memory_limit soluciona el problema de inmediato.
¿Tienes alguna duda o tu caso es especial? Déjala en los comentarios y te ayudaré a resolverla. ¡Tu tienda online merece funcionar sin errores!
