Aumentar límite de memoria PHP en PrestaShop desde DirectAdmin
¿Tu tienda PrestaShop se vuelve lenta, da errores aleatorios o, peor aún, muestra una pantalla en blanco justo cuando un cliente está a punto de comprar? El problema suele estar en el límite de memoria PHP. Es uno de los ajustes más críticos y, a la vez, uno de los más fáciles de solucionar si tienes acceso a DirectAdmin. En esta guía te explicaré paso a paso cómo aumentar la memoria PHP en PrestaShop desde DirectAdmin, qué valores son recomendables y cómo identificar si ese es realmente tu problema.
¿Por qué es importante la memoria PHP en PrestaShop?
PrestaShop es un sistema de gestión de contenidos (CMS) potente, pero también exigente. Cada vez que un usuario visita tu tienda, el servidor ejecuta scripts PHP para generar la página. Si tu tienda tiene muchos productos, módulos complejos o un tráfico elevado, el límite de memoria PHP predeterminado (normalmente 128M o incluso 64M) puede quedarse corto.
Cuando esto ocurre, aparecen errores como:
- "Fatal error: Allowed memory size of X bytes exhausted".
- "Internal Server Error" sin más detalles.
- Pantalla blanca en el back office o front office.
- Módulos que no se instalan o actualizan correctamente.
- El carrito de compras no funciona bien.
Aumentar el límite de memoria PHP es una de las primeras soluciones que debes probar antes de pensar en cambiar de hosting o en optimizar código.
¿Qué valor de memory_limit necesito?
Para una tienda PrestaShop estándar, se recomienda:
- Mínimo: 128M (para tiendas muy pequeñas con pocos módulos).
- Recomendado: 256M (para la mayoría de tiendas con catálogos medianos).
- Óptimo: 512M (para tiendas grandes, con muchos módulos, imágenes pesadas o tráfico alto).
Si tienes un plan de hosting compartido, 256M suele ser un buen equilibrio. Si tienes un VPS o servidor dedicado, puedes subir hasta 512M o incluso 1GB si es necesario, pero con moderación.
Cómo aumentar la memoria PHP en PrestaShop desde DirectAdmin
DirectAdmin es un panel de control de hosting muy popular. El proceso es sencillo, pero debes seguir los pasos con cuidado. Hay tres métodos principales, y te explicaré el más fiable primero.
Método 1: Modificar el archivo php.ini (recomendado)
Este es el método más directo y efectivo. El archivo php.ini es el que controla la configuración de PHP en tu servidor.
Paso 1: Accede a DirectAdmin
Ingresa a tu panel de DirectAdmin con tu usuario y contraseña. Normalmente la URL es algo como https://tudominio.com:2222.
Paso 2: Busca la sección "Advanced Features"
En el menú principal, busca una sección llamada "Advanced Features" o "Características Avanzadas". Allí verás la opción "PHP Selector" o "Select PHP Version". Haz clic.
Paso 3: Selecciona la versión de PHP
Asegúrate de que la versión de PHP seleccionada sea la que usa tu PrestaShop (normalmente 7.4, 8.0, 8.1 o 8.2). Luego, busca la pestaña o sección que dice "Extensions" o "Extensions and Settings".
Paso 4: Busca "memory_limit"
En la lista de opciones, busca el parámetro memory_limit. Verás un campo de texto o un menú desplegable. Cambia el valor a 256M o 512M (según lo que necesites).
Paso 5: Guarda los cambios
Haz clic en "Save" o "Apply". El sistema te mostrará un mensaje de confirmación. Listo, ya has aumentado la memoria.
Paso 6: Verifica el cambio
Para asegurarte de que se aplicó correctamente, puedes crear un archivo info.php en la raíz de tu tienda (carpeta public_html) con el siguiente contenido:
<?php
phpinfo();
?>
Luego accede a tudominio.com/info.php. Busca la línea memory_limit y confirma que el valor es el que configuraste. No olvides borrar este archivo después, ya que expone información sensible de tu servidor.
[WARNING] Si no ves el cambio, puede que tu hosting tenga un límite máximo impuesto por el proveedor. En ese caso, contacta con soporte.
Método 2: Usar un archivo .user.ini (alternativa)
Si tu DirectAdmin no tiene el PHP Selector, o si el cambio no se mantiene, puedes usar un archivo .user.ini. Este archivo se coloca en la raíz de tu tienda y anula la configuración global.
Paso 1: Accede al Administrador de Archivos
En DirectAdmin, ve a "File Manager" y navega hasta la carpeta public_html (donde está instalado PrestaShop).
Paso 2: Crea o edita el archivo .user.ini
Busca si ya existe un archivo llamado .user.ini. Si no, crea uno nuevo (asegúrate de que el nombre empiece con punto). Si usas el editor de archivos de DirectAdmin, ten cuidado de no dejar espacios extra.
Paso 3: Añade la línea de configuración
Dentro del archivo, escribe:
memory_limit = 256M
Puedes añadir más configuraciones si lo deseas, como max_execution_time = 300 (para procesos largos). Guarda el archivo.
Paso 4: Verifica
Repite el paso 6 del método anterior para confirmar que el cambio se aplicó. Si no funciona, prueba con el método 3.
[TIP] El archivo
.user.iniafecta solo a la carpeta donde está y a sus subcarpetas. Es seguro y no interfiere con otros sitios en el mismo servidor.
Método 3: Modificar el archivo .htaccess (último recurso)
Si los métodos anteriores no funcionan, puedes intentar añadir una línea en el archivo .htaccess de PrestaShop. Este método es menos fiable porque depende de la configuración del servidor.
Paso 1: Localiza el archivo .htaccess
En el File Manager, busca el archivo .htaccess dentro de public_html. Si no existe, puedes crearlo.
Paso 2: Añade la línea
Al principio del archivo (después de cualquier línea existente), añade:
php_value memory_limit 256M
Paso 3: Guarda y verifica
Guarda el archivo y repite la verificación con info.php. Ten en cuenta que algunos servidores no permiten php_value en .htaccess por seguridad.
[WARNING] Si tu servidor usa PHP-FPM (común en hosting modernos), este método no funcionará. Es mejor usar el método 1 o 2.
¿Qué hacer si el aumento de memoria no soluciona el error?
A veces, aumentar la memoria PHP no es suficiente. Si sigues viendo errores de memoria, considera:
- Desactivar módulos innecesarios: Los módulos mal optimizados consumen mucha memoria.
- Actualizar PrestaShop y módulos: Las versiones antiguas tienen bugs de memoria.
- Optimizar imágenes: Usa herramientas como TinyPNG para reducir el peso de las imágenes.
- Aumentar el límite de ejecución: También en
php.inio.user.ini, añademax_execution_time = 300para procesos largos. - Revisar el error log: En DirectAdmin, ve a "Error Logs" para ver detalles del error.
Preguntas frecuentes (FAQ)
¿Puedo aumentar la memoria PHP a 1GB?
Sí, pero no siempre es recomendable. Si tu servidor tiene poca RAM total, podría afectar el rendimiento general. Mejor empieza con 256M y sube solo si es necesario.
¿Qué pasa si mi hosting no permite cambiar el memory_limit?
Algunos planes de hosting compartido tienen límites estrictos. En ese caso, contacta al soporte técnico. Si no pueden ayudarte, considera migrar a un plan superior o a un VPS.
¿Aumentar la memoria PHP hará que mi tienda sea más rápida?
No necesariamente. La memoria es como un escritorio más grande: permite trabajar con más documentos a la vez, pero no acelera cada tarea. Si tu tienda es lenta por otros motivos (código mal optimizado, consultas lentas a la base de datos), aumentar la memoria no ayudará.
¿Cómo sé cuánta memoria está usando mi PrestaShop?
Puedes instalar un módulo como "PrestaShop Performance" o revisar los logs de errores. También puedes crear un script PHP con memory_get_usage() para medir el consumo en tiempo real.
¿El cambio afecta a otros sitios en mi DirectAdmin?
Si usas el PHP Selector, el cambio aplica solo al sitio que seleccionaste. Si usas .user.ini, solo afecta a la carpeta donde está. Es seguro.
Conclusión
Aumentar el límite de memoria PHP en PrestaShop desde DirectAdmin es un proceso rápido que puede solucionar muchos errores frustrantes. El método más fiable es usar el PHP Selector, seguido del archivo .user.ini. Recuerda siempre verificar el cambio y no exponer el archivo info.php públicamente.
Si después de aumentar la memoria sigues teniendo problemas, no te desanimes. Revisa los módulos, actualiza todo y, si es necesario, contacta con tu proveedor de hosting. Una tienda estable es la base para unas buenas ventas.
[INFO] Si utilizas Syspanel (antes conocido como HestiaCP), el proceso es similar pero accedes por el puerto 2106. Busca la opción "PHP Settings" dentro del panel y allí podrás ajustar el memory_limit de forma gráfica.
¿Te ha funcionado este tutorial? Si tienes dudas, déjalas en los comentarios o contacta con nuestro equipo de soporte. ¡Estamos aquí para ayudarte a que tu tienda vuele!
