Cómo aumentar el límite de memoria PHP en DirectAdmin para PrestaShop
¿Por qué PrestaShop necesita más memoria PHP?
Si tu tienda PrestaShop se queda en una pantalla blanca, te muestra errores como "Allowed memory size of X bytes exhausted" o tarda muchísimo al guardar un producto, el problema más común es el límite de memoria PHP.
PrestaShop es un software muy completo que gestiona productos, pedidos, clientes, módulos y cachés. Cuantas más funciones uses (y más módulos instales), más memoria necesitará. Por defecto, muchos servidores traen un límite de 128 MB, pero para una tienda funcional se recomienda al menos 256 MB, y si usas muchos módulos o catálogos grandes, 512 MB o más.
La buena noticia es que en DirectAdmin (el panel de control de tu hosting) puedes aumentar este límite de varias formas. Te explico todas, de la más sencilla a la más avanzada, para que elijas la que mejor se adapte a tu nivel.
Qué es el memory limit de PHP y cómo afecta a tu tienda
El memory limit es la cantidad máxima de memoria RAM que un script PHP puede usar. Si tu PrestaShop intenta usar más de ese límite, el proceso se detiene y verás errores o pantallas en blanco.
Esto es especialmente crítico en:
- El back-office (panel de administración) al gestionar catálogos grandes.
- Procesos de importación/exportación de productos.
- La generación de miniaturas de imágenes.
- El cálculo de envíos o impuestos complejos.
- La ejecución de módulos de terceros (marcas de temas, plugins de SEO, etc.).
Aumentar el límite no solo evita errores, sino que mejora la velocidad de carga de tu tienda, ya que PHP puede trabajar con más holgura sin detenerse a liberar memoria constantemente.
Antes de empezar: comprueba tu límite actual
Para saber cuánta memoria tienes asignada ahora mismo, sigue estos pasos:
- Entra en tu DirectAdmin.
- Ve a la sección Gestor de archivos (File Manager).
- Accede a la carpeta public_html (o donde tengas instalado PrestaShop).
- Crea un archivo nuevo llamado info.php.
- Dentro de ese archivo, pega el siguiente código:
<?php phpinfo(); ?> - Guarda el archivo y ábrelo desde tu navegador:
tudominio.com/info.php. - Busca la línea memory_limit. Ahí verás el valor actual (por ejemplo, 128M).
[WARNING] IMPORTANTE: Después de comprobar el valor, borra el archivo info.php de tu servidor. Dejarlo accesible es un riesgo de seguridad grave, ya que expone información sensible de tu configuración.
Método 1: Aumentar el límite desde el selector de PHP de DirectAdmin
Esta es la forma más sencilla y la que recomiendo para la mayoría de usuarios. DirectAdmin tiene un selector de versiones de PHP que también permite ajustar parámetros.
Pasos a seguir:
- Accede a tu DirectAdmin con tus credenciales.
- Busca la sección Configuración de PHP o Selector de PHP (según la versión de DirectAdmin, puede llamarse "PHP Settings", "PHP Version Selector" o "Multi PHP Manager").
- Selecciona tu dominio (si tienes varios).
- Verás una lista de opciones. Busca memory_limit.
- Cambia el valor a 512M (o el que necesites). También puedes poner 1024M si tu plan de hosting lo permite.
- Haz clic en Guardar o Actualizar.
[TIP] Si no encuentras la opción exacta, busca "memory_limit" en el cuadro de búsqueda del selector. En algunas versiones de DirectAdmin está dentro de "Custom PHP Configuration".
Método 2: Modificar el archivo php.ini de tu cuenta
Si el selector de PHP no te funciona o tu hosting es más antiguo, puedes editar el archivo php.ini directamente.
Localizar el archivo correcto
En DirectAdmin, cada cuenta tiene su propio php.ini personalizado. La ruta habitual es:
/usr/local/lib/php.ini
Pero en tu cuenta de hosting, muchas veces puedes crear uno dentro de public_html o en la carpeta raíz de tu dominio.
Cómo editarlo:
- Ve a Gestor de archivos en DirectAdmin.
- Navega hasta la carpeta public_html.
- Busca el archivo php.ini. Si no existe, créalo con un editor de texto.
- Dentro del archivo, busca la línea:
memory_limit = 128M - Cámbiala por:
memory_limit = 512M - Guarda el archivo.
[INFO] Si no encuentras la línea, añádela al final del archivo. PHP tomará ese valor como el nuevo límite.
Método 3: Usar el archivo .htaccess (solo si tu hosting lo permite)
Algunos servidores no permiten editar php.ini, pero sí permiten configurar PHP desde el .htaccess. Este método es muy útil en hosting compartido.
Pasos:
- Ve al Gestor de archivos.
- Abre la carpeta public_html.
- Localiza el archivo .htaccess. Si no existe, créalo.
- Añade estas líneas al principio del archivo:
php_value memory_limit 512M - Guarda los cambios.
[WARNING] Este método solo funciona si tu servidor tiene habilitada la directiva
AllowOverride All. Si no funciona, no pasa nada: simplemente prueba con los otros métodos. Además, si usas PHP como módulo de Apache (no como CGI/FastCGI), esto no tendrá efecto.
Método 4: Crear un archivo .user.ini (para PHP-FPM)
Si tu servidor usa PHP-FPM (lo más común hoy en día), puedes crear un archivo llamado .user.ini en la raíz de tu dominio.
Cómo hacerlo:
- Entra en Gestor de archivos.
- Ve a public_html.
- Crea un archivo llamado .user.ini.
- Escribe dentro:
memory_limit = 512M - Guarda el archivo.
Este archivo tiene prioridad sobre el php.ini general y es la forma moderna de configurar PHP en hosting con FPM.
[INFO] A diferencia del .htaccess, el .user.ini funciona siempre que uses PHP-FPM, que es el estándar actual. Si tu hosting usa esta tecnología, es el método más fiable.
¿Qué valor de memory_limit deberías usar?
Aquí tienes una guía rápida según el tamaño de tu tienda:
| Tamaño de tienda | Productos | Módulos | Memoria recomendada |
|---|---|---|---|
| Tienda pequeña | Menos de 500 | 5-10 | 256M |
| Tienda mediana | 500-5000 | 10-30 | 512M |
| Tienda grande | Más de 5000 | 30+ | 1024M (1G) |
[TIP] Si no estás seguro, empieza con 512M. Es un valor equilibrado para la mayoría de tiendas PrestaShop. Si después de cambiarlo sigues teniendo errores, sube a 1024M.
Problemas comunes y soluciones
El cambio no se aplica
Si después de modificar el valor sigues viendo el mismo límite en info.php, revisa:
- ¿Guardaste el archivo correcto? (php.ini vs .user.ini vs .htaccess)
- ¿Reiniciaste PHP? En DirectAdmin, a veces es necesario reiniciar el servicio PHP desde el panel.
- ¿Tu hosting tiene restricciones? Algunos planes limitan el valor máximo.
Error "Allowed memory size exhausted" persiste
Si el error sigue apareciendo, prueba:
- Aumenta el límite a 1024M temporalmente.
- Desactiva módulos que no uses. Los módulos mal codificados consumen mucha memoria.
- Limpia la caché de PrestaShop desde Parámetros avanzados > Rendimiento.
- Contacta con tu proveedor de hosting. Puede que necesites un plan superior.
PrestaShop no carga después del cambio
Esto suele pasar si el valor es demasiado alto para tu plan o si hay un error de sintaxis en el archivo. Revisa que no haya espacios extra o caracteres raros. Si no puedes acceder, borra el archivo modificado o restaura el valor anterior desde DirectAdmin.
Preguntas frecuentes (FAQ)
¿Cuál es el mejor método para aumentar la memoria en DirectAdmin?
El Selector de PHP es el más seguro y fácil. Si no lo tienes, usa el .user.ini (para PHP-FPM) o el php.ini de tu cuenta.
¿Cuánta memoria necesita PrestaShop 8?
Para PrestaShop 8, se recomienda un mínimo de 256M para funcionar, pero 512M es lo ideal para evitar problemas con módulos y temas modernos.
¿Puedo poner memory_limit a -1 (ilimitado)?
No lo recomiendo. Un valor ilimitado puede hacer que un script malicioso o un error consuma toda la memoria del servidor, afectando a otras cuentas (y tu proveedor podría suspenderte). Usa siempre un valor concreto.
¿Afecta el memory_limit a la velocidad de mi tienda?
Sí, indirectamente. Con más memoria, PHP no necesita liberar espacio constantemente y puede procesar páginas más rápido. Pero un valor excesivamente alto no hará que la tienda sea más rápida por arte de magia; el cuello de botella suele estar en otros sitios (cache, base de datos, etc.).
¿Qué pasa si mi hosting no permite subir el límite?
Si tu plan de hosting tiene un límite máximo (por ejemplo, 256M), no podrás superarlo. En ese caso, tendrás que optimizar tu PrestaShop: desactivar módulos innecesarios, limpiar cachés, usar un tema más ligero o, en última instancia, contratar un plan superior.
Conclusión: tu tienda merece más memoria
Aumentar el memory limit de PHP en DirectAdmin es un proceso sencillo que puede resolver muchos dolores de cabeza. Con los métodos que te he explicado (selector de PHP, php.ini, .htaccess o .user.ini) tienes todas las herramientas para hacerlo incluso sin ser un experto técnico.
Mi recomendación final:
- Empieza por el Selector de PHP de DirectAdmin.
- Si no funciona, usa el .user.ini.
- Comprueba el cambio con info.php.
- Borra info.php inmediatamente después.
- Limpia la caché de PrestaShop.
- Prueba tu tienda y verifica que los errores han desaparecido.
Con 512M de memoria, tu PrestaShop respirará tranquilo, cargará más rápido y podrás gestionar tu catálogo sin sustos. Y recuerda: si en el futuro añades más productos o módulos, siempre puedes subir el límite un poco más.
[INFO] Si tu tienda sigue lenta o con errores tras aumentar la memoria, el problema puede estar en otro lado: base de datos, caché, servidor, etc. No dudes en contactar con tu soporte de hosting para que revisen la configuración completa.
¡Manos a la obra! Tu tienda te lo agradecerá.
