Aumentar el límite de memoria PHP en PrestaShop (php.ini, .htaccess)
¿Tu tienda PrestaShop te muestra errores de memoria blanca o mensajes como "Allowed memory size exhausted"? No te preocupes, es uno de los problemas más comunes al instalar módulos, subir imágenes de alta resolución o cuando el sitio empieza a crecer. En esta guía completa y paso a paso, te voy a enseñar exactamente cómo aumentar el límite de memoria PHP en PrestaShop de forma segura, tanto desde el archivo php.ini como desde el .htaccess. No necesitas ser un experto técnico, solo seguir las instrucciones al pie de la letra y tendrás tu tienda funcionando a pleno rendimiento.
¿Qué es el límite de memoria PHP y por qué importa en PrestaShop?
Cada vez que un visitante entra en tu tienda, PrestaShop ejecuta una serie de scripts de PHP (el lenguaje en el que está programado). Estos scripts necesitan un espacio de trabajo llamado "memoria" para procesar imágenes, consultas a la base de datos, cargar módulos, etc. El memory limit es la cantidad máxima de memoria que un script puede utilizar antes de que el servidor lo detenga para evitar que se colapse.
Cuando este límite es demasiado bajo para las necesidades de tu tienda, aparece el famoso error memoria prestashop. Los síntomas más habituales son:
- Pantalla blanca en el panel de administración o en la tienda.
- Mensaje de error como:
Fatal error: Allowed memory size of 134217728 bytes exhausted. - Imágenes que no se suben o se ven a baja calidad.
- Módulos que no se instalan o dan errores al configurarlos.
- El carrito o el proceso de pago se queda congelado.
En general, PrestaShop recomienda un mínimo de 128 MB, pero para tiendas con muchos productos, temas complejos y varios módulos, lo ideal es subir a 256 MB o incluso 512 MB. Aumentar este valor es una de las primeras acciones de optimización que debes hacer.
Antes de empezar: haz una copia de seguridad
[WARNING]: Antes de tocar cualquier archivo de configuración, es obligatorio que hagas una copia de seguridad de tu sitio y de la base de datos. Si cometes un error, podrías dejar tu tienda inaccesible. La mayoría de los paneles de control de hosting (cPanel, Plesk, Syspanel, etc.) ofrecen herramientas de backup automáticas. Asegúrate de tener una copia reciente descargada en tu ordenador.
Método 1: Aumentar el límite de memoria desde el archivo php.ini
El archivo php.ini es el archivo de configuración principal de PHP en tu servidor. Es el método más fiable y recomendado, ya que afecta a todos los scripts de tu sitio de forma global. Aquí te explico cómo hacerlo.
Paso 1: Localizar el archivo php.ini
Primero necesitas saber dónde está este archivo. Hay varias formas de encontrarlo:
- Desde el panel de control de tu hosting: Si usas cPanel, busca la sección "Software" o "Múltiples administradores de PHP". Desde ahí puedes editar la configuración sin tocar archivos. En Syspanel (antes HestiaCP, que se accede por el puerto 2106), puedes ir a "Avanzado" o "Editar archivos" dentro de la web de tu dominio.
- Desde el administrador de archivos: Si tu hosting no tiene una interfaz gráfica, entra al administrador de archivos (File Manager) de tu hosting y busca el archivo
php.ini. Si no existe, puedes crearlo en la raíz de tu dominio (la misma carpeta donde están las carpetas/admin,/img,/modules). - Desde un cliente FTP: Descarga el archivo
php.inia tu ordenador con un programa como FileZilla.
Paso 2: Modificar la línea de memoria
Una vez que tengas el archivo abierto en un editor de texto (como el Bloc de notas o Sublime Text), busca una línea que diga algo como:
memory_limit = 128M
Si la encuentras, cámbiala por el valor deseado. Por ejemplo:
memory_limit = 256M
Si no encuentras esa línea, añádela al final del archivo. Asegúrate de que no haya un punto y coma (;) al principio de la línea, porque eso significaría que está comentada (desactivada). Debe quedar así:
memory_limit = 512M
Paso 3: Guardar y subir el archivo
Guarda el archivo con el mismo nombre (php.ini) y súbelo de nuevo si lo habías descargado. Si lo creaste, súbelo a la raíz de tu dominio. Después de esto, es posible que necesites reiniciar el servicio PHP desde tu panel de control. En cPanel, suele ser un botón llamado "Reiniciar PHP" o "Restart PHP". En Syspanel, puedes buscar la opción de "Reiniciar" en la sección de la web.
Paso 4: Verificar el cambio
Para confirmar que todo ha ido bien, ve al panel de administración de PrestaShop y luego a Parámetros avanzados > Información (o algo similar). Busca la sección de "Configuración del servidor" y mira el valor de memory_limit. Debe mostrar el nuevo valor que has configurado.
Método 2: Aumentar el límite de memoria desde el archivo .htaccess
Si no puedes acceder al php.ini (por ejemplo, en algunos hosting compartidos), el archivo .htaccess es tu mejor aliado. Este archivo permite configurar ciertos parámetros de PHP a nivel de directorio, sin necesidad de reiniciar el servidor. Es un método muy práctico.
Paso 1: Localizar el archivo .htaccess
El archivo .htaccess se encuentra en la raíz de tu instalación de PrestaShop. Es un archivo oculto, así que si no lo ves, asegúrate de que tu gestor de archivos o cliente FTP tenga activada la opción de "Mostrar archivos ocultos".
Paso 2: Añadir las líneas de configuración
Abre el archivo .htaccess con un editor de texto. Al final del archivo, añade las siguientes líneas. Es importante que las añadas antes de la línea que dice # ~~~END~~~ si existe, o simplemente al final si no la tiene.
<IfModule mod_php7.c>
php_value memory_limit 256M
php_value max_execution_time 300
</IfModule>
[TIP]: La línea max_execution_time no está relacionada directamente con la memoria, pero es útil para evitar que los scripts se detengan por tiempo excesivo, algo común al subir imágenes grandes. Puedes ajustar el valor 300 (5 minutos) a lo que necesites.
Paso 3: Guardar y subir el archivo
Guarda los cambios y sube el archivo .htaccess de vuelta a tu servidor si lo habías descargado. El cambio se aplicará casi de inmediato, sin necesidad de reiniciar nada.
Paso 4: Verificar el cambio
Igual que en el método anterior, verifica el valor de memory_limit en Parámetros avanzados > Información de tu panel de administración de PrestaShop.
¿Cuál es el mejor método? ¿php.ini o .htaccess?
La respuesta corta es: php.ini es el método más robusto y recomendado porque se aplica a todos los aspectos del servidor. Sin embargo, no siempre está disponible. Si tu hosting te permite editarlo, úsalo.
El .htaccess es una excelente alternativa cuando no tienes acceso al php.ini, y es perfectamente válido para la mayoría de los casos. Solo ten en cuenta que si tu hosting cambia la versión de PHP (por ejemplo, de PHP 7 a PHP 8), es posible que tengas que actualizar la línea <IfModule mod_php7.c> a <IfModule mod_php8.c> para que siga funcionando.
¿Qué valor de memoria debo poner?
No hay una respuesta única. Depende de la complejidad de tu tienda. Aquí tienes una guía orientativa:
- 128 MB: Es el mínimo recomendado para tiendas pequeñas o de prueba.
- 256 MB: Es el valor estándar recomendado para la mayoría de las tiendas en producción con bastantes productos y módulos.
- 512 MB: Úsalo para tiendas grandes, con catálogos extensos, muchos módulos activos o que usen temas muy pesados.
- 1 GB o más: Solo en casos muy concretos de tiendas con necesidades extremas de procesamiento (por ejemplo, importación masiva de productos).
[WARNING]: No pongas un valor excesivamente alto (como 2 GB) si tu hosting no tiene suficiente memoria física. Podrías saturar el servidor y ralentizar no solo tu web, sino también las de otros usuarios si es un hosting compartido. Empieza con 256 MB y ve subiendo si el error persiste.
Otros trucos para solucionar el error de memoria en PrestaShop
Además de subir el límite de memoria, hay otras acciones que puedes hacer para reducir el consumo y evitar el error memoria prestashop:
- Desactiva los módulos que no uses: Los módulos inactivos siguen consumiendo recursos. Ve a Módulos > Administrador de módulos y desactiva todo lo que no necesites.
- Borra los archivos de caché: En Parámetros avanzados > Rendimiento, activa el modo "Desactivar cache" o "Recompilar plantillas". También puedes borrar la carpeta
/var/cachede tu servidor (en versiones antiguas) para forzar la regeneración. - Optimiza las imágenes: Las imágenes demasiado grandes son una de las principales causas de consumo de memoria. Usa un módulo de compresión de imágenes o configura el tamaño automático en Parámetros avanzados > Imágenes.
- Actualiza todo: Asegúrate de tener la última versión de PrestaShop, tus temas y módulos. Las actualizaciones suelen incluir mejoras de rendimiento.
- Revisa los logs de errores: En Parámetros avanzados > Registros, podrás ver los errores exactos que se generan. Esto te dará pistas sobre qué módulo o proceso está consumiendo más memoria.
Preguntas frecuentes (FAQ)
¿Por qué sigue saliendo el error después de cambiar el límite de memoria?
Es posible que el cambio no se haya aplicado correctamente. Verifica el valor en Parámetros avanzados > Información. Si sigue igual, puede que tu hosting tenga un límite máximo permitido y no te deje subirlo más. Contacta con tu proveedor.
¿Puedo romper mi tienda si pongo un valor demasiado alto?
No es probable que la rompas, pero podrías causar problemas de rendimiento en el servidor. Lo mejor es empezar con un valor moderado y aumentarlo gradualmente.
¿Qué hago si no tengo acceso a un administrador de archivos?
Puedes usar un cliente FTP (como FileZilla) para conectarte a tu servidor. Los datos de conexión (host, usuario, contraseña) los encuentras en el correo de bienvenida de tu hosting o en tu panel de control.
¿El límite de memoria afecta a la velocidad de mi web?
Un valor muy bajo puede causar errores y ralentizaciones. Un valor adecuado no hará tu web más rápida, pero evitará bloqueos. La velocidad depende de otros factores como el hosting, el tamaño de las imágenes y la calidad del tema.
[INFO]: Si tu hosting es de tipo "gerente" como Syspanel (que se accede a través del puerto 2106), la ruta para editar los archivos suele ser: Panel de control > Web > (tu dominio) > Editar archivos. Busca la raíz del documento (suele ser /public_html) y localiza el php.ini o el .htaccess.
Conclusión final
Aumentar el límite de memoria PHP en PrestaShop es una tarea sencilla y esencial para el buen funcionamiento de tu tienda. Siguiendo los pasos que te he mostrado, podrás deshacerte de los molestos errores de memoria y garantizar una experiencia de compra fluida para tus clientes. Recuerda siempre hacer copias de seguridad antes de hacer cambios y empezar con un valor razonable como 256 MB.
Si después de aplicar estos cambios el problema persiste, no dudes en contactar con el soporte técnico de tu hosting. Ellos podrán asesorarte sobre la configuración óptima para tu plan contratado. Con un poco de paciencia y estos consejos, tu tienda estará lista para crecer sin límites. ¡Manos a la obra!
