Cómo aumentar el límite de memoria PHP para PrestaShop en DirectAdmin
¿Por qué PrestaShop da errores de memoria PHP?
Si estás leyendo esto, probablemente hayas visto en tu panel de administración de PrestaShop mensajes como "Fatal error: Allowed memory size of X bytes exhausted" o "Memory limit exceeded". No te preocupes, es uno de los problemas más comunes en tiendas online y tiene solución.
El límite de memoria PHP es una especie de "presupuesto" que tu servidor asigna a cada script para que funcione. Cuando tu tienda crece, añades módulos, plugins o productos, ese presupuesto se queda corto y el sistema se bloquea. Es como intentar meter demasiadas cosas en una mochila pequeña: al final, algo se rompe.
En este artículo te voy a explicar paso a paso cómo aumentar la memoria de PrestaShop en un servidor con DirectAdmin, incluso si no tienes experiencia técnica. Vamos a resolverlo juntos, con calma y con instrucciones claras.
¿Cuál es el límite de memoria recomendado para PrestaShop?
Antes de tocar nada, es importante saber a dónde queremos llegar. PrestaShop es un software bastante exigente, especialmente si usas muchos módulos o tienes catálogos grandes.
Los valores recomendados son:
- Mínimo absoluto: 128 MB
- Recomendado para tiendas pequeñas: 256 MB
- Recomendado para tiendas medianas: 512 MB
- Recomendado para tiendas grandes o con muchos módulos: 1 GB o más
Si tu tienda funciona con 64 MB o 128 MB, es casi seguro que tarde o temprano tendrás errores de memoria. Mi recomendación personal es que pongas 512 MB como punto de partida. Es un equilibrio perfecto entre rendimiento y estabilidad.
Cómo comprobar el límite de memoria actual en PrestaShop
Lo primero es saber cuánta memoria tienes asignada ahora mismo. Hay dos formas muy sencillas de hacerlo:
Método 1: Desde el back office de PrestaShop
- Ve a tu panel de administración de PrestaShop.
- En el menú superior, busca Parámetros avanzados.
- Haz clic en Información.
- Busca la sección que dice Configuración del servidor.
- Ahí verás un campo llamado memory_limit. Ese es tu valor actual.
Método 2: Creando un archivo de prueba
Si no encuentras la opción anterior, puedes crear un archivo temporal:
- Conecta a tu servidor por FTP o usando el administrador de archivos de DirectAdmin.
- En la carpeta raíz de tu tienda (donde está el archivo
config/), crea un archivo llamadotest.php. - Dentro, escribe solo esto:
<?php phpinfo(); ?> - Guárdalo y accede a
tudominio.com/test.php. - Busca la línea memory_limit en la tabla que aparece.
- ¡IMPORTANTE! Borra ese archivo inmediatamente después, ya que es un riesgo de seguridad.
Método 1: Aumentar la memoria PHP desde el panel de DirectAdmin
DirectAdmin tiene una interfaz bastante clara para gestionar los ajustes de PHP. Te recomiendo empezar aquí porque es la forma más segura y limpia.
Paso 1: Accede a DirectAdmin
- Entra en 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 de PHP
- En el menú principal, busca Configuración de PHP o PHP Settings.
- Si no lo ves directamente, mira en Cuenta o Configuración avanzada.
Paso 3: Ajusta el memory_limit
- Dentro de la configuración de PHP, busca el campo memory_limit.
- Verás un valor actual, por ejemplo
128M. - Cámbialo a
512Mo el valor que hayas decidido. - También puedes ajustar otros valores como
max_execution_timeoupload_max_filesize, pero por ahora nos centramos en la memoria.
Paso 4: Guarda los cambios
- Haz clic en Guardar o Save.
- Espera unos segundos mientras se aplican los cambios.
- Vuelve a comprobar el límite de memoria en PrestaShop para verificar que se ha actualizado.
[TIP] Si tu proveedor de hosting usa DirectAdmin con múltiples versiones de PHP, asegúrate de estar ajustando la versión que usa tu tienda. Puedes comprobarlo en la misma sección de configuración.
Método 2: Modificar el archivo .htaccess
Si no tienes acceso a la configuración de PHP desde DirectAdmin (puede pasar en algunos planes), puedes usar el archivo .htaccess. Este método funciona en la mayoría de servidores Apache.
Paso 1: Encuentra el archivo .htaccess
- Conecta por FTP o usa el administrador de archivos de DirectAdmin.
- Ve a la carpeta raíz de tu PrestaShop.
- Busca el archivo
.htaccess. Si no lo ves, activa la opción de "mostrar archivos ocultos" en tu cliente FTP.
Paso 2: Añade el código
- Abre el archivo con un editor de texto plano (nada de Word, usa Notepad++ o similar).
- Al principio del archivo, añade estas líneas:
<IfModule mod_php7.c>
php_value memory_limit 512M
</IfModule>
- Si tu servidor usa PHP 8, cambia
mod_php7.cpormod_php.c. - Guarda el archivo y súbelo de nuevo si estabas trabajando localmente.
[WARNING] Antes de tocar el
.htaccess, haz una copia de seguridad. Si te equivocas, podrías dejar tu tienda inaccesible. Siempre es mejor prevenir.
Método 3: Modificar el archivo php.ini
Otra opción es editar directamente el archivo php.ini, que es el archivo de configuración principal de PHP.
Paso 1: Localiza el php.ini
- En DirectAdmin, ve a la sección Configuración de PHP.
- Ahí verás la ruta exacta del archivo
php.inique usa tu cuenta. - Normalmente está en una ruta como
/usr/local/lib/php.inio en tu carpeta personal.
Paso 2: Edita el archivo
- Usa el administrador de archivos de DirectAdmin para abrirlo.
- Busca la línea que dice
memory_limit = 128M. - Cámbiala por
memory_limit = 512M. - Guarda el archivo.
Paso 3: Reinicia PHP
- Dependiendo de cómo esté configurado tu servidor, puede que necesites reiniciar el servicio PHP.
- En DirectAdmin, busca la opción Reiniciar PHP o Restart PHP.
- Si no la encuentras, contacta con tu proveedor de hosting para que lo hagan ellos.
Método 4: Usar un archivo php.ini local (para usuarios avanzados)
Si los métodos anteriores no funcionan, puedes crear un php.ini específico para tu carpeta de PrestaShop.
- Crea un archivo llamado
php.inien la carpeta raíz de tu tienda. - Añade esta línea:
memory_limit = 512M
- Guarda y sube el archivo.
[INFO] Este método solo funciona si tu servidor tiene habilitada la opción
PHP_INI_PERDIR. No todos los servidores lo permiten, pero merece la pena intentarlo.
Errores comunes al aumentar la memoria PHP y cómo solucionarlos
A veces, incluso después de hacer todos los cambios, el error persiste. Aquí tienes los problemas más frecuentes y sus soluciones:
Error 1: "Allowed memory size exhausted" sigue apareciendo
- Causa: Puede que no hayas modificado la versión correcta de PHP.
- Solución: Verifica qué versión de PHP usa PrestaShop. Ve a Parámetros avanzados > Información y mira la versión. Asegúrate de modificar la configuración de esa versión concreta.
Error 2: El límite de memoria en PrestaShop no cambia
- Causa: Puede haber un conflicto con otro archivo de configuración.
- Solución: Prueba con el método del
.htaccessy elphp.inilocal a la vez. A veces necesitas combinar varios métodos.
Error 3: La tienda se pone en blanco después del cambio
- Causa: Has puesto un valor demasiado alto o has escrito mal el archivo.
- Solución: Revisa que has escrito
512My no512MBo512. El formato correcto es con la M pegada al número. Si tienes una copia de seguridad, restaura el archivo original.
Error 4: No encuentro la opción de PHP en DirectAdmin
- Causa: Algunos planes de hosting tienen funciones limitadas.
- Solución: Contacta con tu proveedor de hosting y pídeles que aumenten el
memory_limitpor ti. Es un trámite muy común y suelen hacerlo rápido.
Consejos extra para optimizar la memoria de PrestaShop
Aumentar el límite de memoria es solo una parte de la solución. Aquí tienes algunos consejos adicionales para que tu tienda funcione mejor:
- Desactiva módulos que no uses: Cada módulo consume memoria, incluso si no lo estás usando activamente.
- Actualiza PrestaShop y los módulos: Las versiones nuevas suelen ser más eficientes.
- Usa una caché: Activa la caché de PrestaShop en Parámetros avanzados > Rendimiento.
- Limpia los archivos temporales: La carpeta
var/cachepuede crecer mucho. Bórrala de vez en cuando (PrestaShop la regenerará). - Contrata un hosting mejor: Si tu tienda crece mucho, puede que necesites un plan con más recursos.
Preguntas frecuentes (FAQ)
¿Cuánta memoria PHP necesito para PrestaShop 8?
PrestaShop 8 es más eficiente que versiones anteriores, pero sigue recomendándose al menos 256 MB. Para tiendas con varios módulos, mejor 512 MB.
¿Aumentar la memoria PHP hará mi tienda más rápida?
No directamente. Aumentar la memoria evita errores y bloqueos, pero la velocidad depende de otros factores como el hosting, la optimización de imágenes y la caché.
¿Puedo poner un límite de memoria infinito?
Técnicamente sí, pero no es recomendable. Un valor demasiado alto puede ralentizar el servidor y provocar otros problemas. Sigue las recomendaciones del fabricante.
¿Qué pasa si no tengo acceso a DirectAdmin?
Si tu hosting usa otro panel como Syspanel (antes llamado HestiaCP), el proceso es similar pero con algunas diferencias. En Syspanel, el puerto de acceso es el 2106 y la configuración de PHP se encuentra en la sección de dominios.
¿El límite de memoria afecta a todas las tiendas en mi hosting?
No, cada cuenta de hosting tiene su propia configuración. Si tienes varias tiendas, tendrás que hacer el cambio en cada una.
Resumen final
Aumentar el límite de memoria PHP en PrestaShop con DirectAdmin es un proceso sencillo si sigues los pasos correctos. Recuerda:
- Comprueba tu límite actual desde el back office o con un archivo de prueba.
- Prueba primero desde DirectAdmin en la configuración de PHP.
- Si no funciona, usa el .htaccess o crea un
php.inilocal. - Verifica los cambios volviendo a comprobar el valor en PrestaShop.
- Si todo falla, contacta con tu proveedor.
Los errores de memoria son frustrantes, pero son solucionables. Con un poco de paciencia y siguiendo esta guía, tu tienda volverá a funcionar sin problemas.
[WARNING] Si no te sientes cómodo editando archivos de configuración, no lo hagas a lo loco. Pide ayuda a tu proveedor de hosting o a un profesional. Un error en estos archivos puede dejar tu tienda inaccesible.
Espero que este artículo te haya sido de ayuda. Si tienes alguna duda, déjala en los comentarios y estaré encantado de ayudarte. ¡Buena suerte con tu tienda online!
