Cómo solucionar el error de permisos 500 en PrestaShop con DirectAdmin
¿Por qué aparece el error 500 en PrestaShop y qué tiene que ver DirectAdmin?
El error 500 es uno de los más temidos, pero también uno de los más comunes. Cuando tu tienda PrestaShop muestra un error 500, significa que el servidor ha encontrado un problema interno que le impide procesar la solicitud. No es un error de tu código ni de tu producto, sino una respuesta genérica del servidor. La buena noticia es que, en la mayoría de los casos, la causa está relacionada con los permisos de archivos y carpetas, y con la configuración de DirectAdmin.
Si tu PrestaShop no carga y ves el temido error 500, no te preocupes. En esta guía vas a aprender a diagnosticarlo y solucionarlo paso a paso, incluso si no eres un experto técnico. Vamos a centrarnos en la relación entre el error 500 PrestaShop y los permisos en DirectAdmin, porque es la causa más frecuente y la que puedes resolver sin necesidad de contactar con soporte.
Primeros pasos: identifica el alcance del problema
Antes de tocar nada, necesitas saber si el error afecta a toda la tienda o solo a algunas páginas. Esto te dará pistas sobre si el problema está en los permisos de archivos, en el archivo .htaccess, o en algo más profundo.
- Si el error 500 aparece en toda la tienda, es muy probable que el problema sea global: permisos de la carpeta raíz, archivos de configuración corruptos o problemas con el
.htaccess. - Si solo aparece en páginas concretas (por ejemplo, al acceder al carrito o al panel de administración), el problema podría estar en los permisos de una carpeta específica, como
var/cache,var/logsoimg.
Otra pista importante: revisa si el error aparece también en el panel de administración de PrestaShop. Si no puedes acceder ni al back-office, el problema es más serio y probablemente esté relacionado con la estructura de archivos.
Herramientas que necesitas para esta tarea
Para solucionar el error 500 en PrestaShop con DirectAdmin, vas a necesitar:
- Acceso a tu panel de control DirectAdmin.
- Un cliente FTP como FileZilla (opcional, pero muy útil).
- Acceso al administrador de archivos de DirectAdmin (File Manager).
- Un navegador web con modo incógnito o una ventana privada para probar.
Si no tienes experiencia con FTP, no pasa nada. Con el Administrador de Archivos de DirectAdmin vas a poder hacer todo lo que necesitas.
Diagnóstico rápido: activa el modo de depuración de PrestaShop
Antes de cambiar permisos a lo loco, es muy recomendable activar el modo de depuración de PrestaShop. Este modo te mostrará el error real en lugar de la página genérica de error 500. Esto te ahorrará muchísimo tiempo.
Paso 1: Accede al archivo de configuración
Conecta por FTP o usa el Administrador de Archivos de DirectAdmin y navega hasta la raíz de tu instalación de PrestaShop. Busca el archivo llamado config/defines.inc.php.
Paso 2: Edita el valor de depuración
Abre el archivo y localiza esta línea:
define('_PS_MODE_DEV_', false);
Cámbiala a:
define('_PS_MODE_DEV_', true);
Guarda los cambios y sube el archivo si lo has editado en local.
Paso 3: Recarga tu tienda
Ahora recarga la página que daba el error 500. Verás un mensaje mucho más específico, como un error de permisos en una carpeta concreta o un problema con un módulo. Anota ese mensaje, porque te indicará exactamente dónde está el problema.
[TIP] Una vez hayas solucionado el error, vuelve a poner
_PS_MODE_DEV_enfalse. Dejarlo entrueen producción es un riesgo de seguridad, ya que muestra información sensible del servidor.
La causa más común: permisos incorrectos en archivos y carpetas
DirectAdmin, por defecto, asigna permisos estándar a los archivos y carpetas que se crean. Pero cuando instalas PrestaShop, o cuando haces una migración, los permisos pueden quedar mal configurados. Esto provoca que PrestaShop no pueda escribir en ciertas carpetas, como la caché, los logs o las imágenes temporales, y el resultado es el error 500.
Permisos correctos para PrestaShop
La regla general es la siguiente:
- Carpetas: permisos
755. - Archivos: permisos
644. - Archivos de configuración especiales (como
config/settings.inc.php): permisos444o644(según el servidor). - Carpetas con escritura obligatoria (como
var/cache,var/logs,img,download): permisos755o775.
Si alguno de estos permisos está en 777, es un riesgo de seguridad, pero también puede causar conflictos. Si están en 600 o 400, PrestaShop no podrá leerlos y dará error 500.
Cómo cambiar permisos desde DirectAdmin
- Entra en tu panel de DirectAdmin.
- Ve a Administrador de archivos y navega hasta la carpeta raíz de PrestaShop.
- Selecciona todos los archivos y carpetas (Ctrl+A o usando la casilla de selección).
- En el menú superior, busca el botón de Permisos (normalmente tiene un icono de candado o engranaje).
- Introduce los permisos
755para carpetas y644para archivos. - Aplica los cambios.
[WARNING] No apliques permisos
777a toda la estructura. Aunque parece la solución rápida, es un agujero de seguridad enorme. Si tu servidor lo permite, usa755y644. Si tienes problemas con carpetas específicas, cámbialas individualmente a775.
La carpeta var/cache: la culpable más frecuente
En PrestaShop 1.7 y 1.8, la carpeta var/cache es la que más problemas da. Si los permisos de esta carpeta no son correctos, PrestaShop no puede generar los archivos de caché y muestra el error 500.
Para solucionarlo:
- Ve a
var/cachey cambia los permisos a755(o775si tu servidor lo requiere). - Borra el contenido de la carpeta
var/cache(pero no la carpeta en sí). Esto fuerza a PrestaShop a regenerar la caché desde cero. - Recarga tu tienda.
Si el problema persiste, repite la operación con var/logs, que también es una carpeta crítica.
El archivo .htaccess y su relación con el error 500
Otro culpable muy común es el archivo .htaccess. Este archivo controla las reglas de reescritura de URL, redirecciones y otras configuraciones del servidor. Si está corrupto o tiene permisos incorrectos, PrestaShop no carga y verás el error 500.
Solución: regenera el .htaccess desde el panel de administración
Si puedes acceder al panel de administración de PrestaShop (aunque sea a veces), la solución es sencilla:
- Ve a Parámetros avanzados → Rendimiento.
- En la sección Reglas de reescritura, activa o desactiva la opción "Usar el archivo .htaccess".
- Guarda los cambios.
- Vuelve a activar la opción y guarda de nuevo.
Esto regenera el archivo .htaccess con los permisos y reglas correctos.
Solución manual desde DirectAdmin
Si no puedes acceder al panel de administración, tendrás que editar el .htaccess manualmente:
- Abre el Administrador de Archivos de DirectAdmin.
- Busca el archivo
.htaccessen la raíz de PrestaShop. - Si no lo ves, activa la opción "Mostrar archivos ocultos" en el Administrador de Archivos.
- Renombra el archivo a
.htaccess.bak(esto lo desactiva temporalmente). - Recarga tu tienda. Si ahora carga (aunque con URLs no amigables), el problema era el
.htaccess. - Si no tienes un backup del
.htaccess, ve a la configuración de PrestaShop y actívalo de nuevo desde el panel, o copia un.htaccesslimpio de una instalación estándar.
[INFO] Si renombras el
.htaccessy PrestaShop sigue sin cargar, el problema no es este archivo. Vuelve a ponerle su nombre original y sigue con las siguientes comprobaciones.
Permisos de los archivos de configuración: settings.inc.php y defines.inc.php
Estos archivos son el corazón de PrestaShop. Si no se pueden leer o escribir correctamente, el error 500 está garantizado.
settings.inc.php
En PrestaShop 1.6 y versiones anteriores, este archivo contiene las credenciales de la base de datos. En versiones 1.7 y 1.8, la configuración se almacena en la tabla ps_configuration de la base de datos, pero aún puede haber un archivo de configuración en app/config/parameters.php.
Revisa los permisos de ambos archivos:
config/settings.inc.php(si existe): permisos444o644.app/config/parameters.php: permisos644.
Si los permisos son 600, PrestaShop no puede leerlos. Si son 777, es un riesgo de seguridad.
La conexión con la base de datos: otro origen del error 500
Aunque el error 500 suele estar relacionado con permisos, a veces la causa es una conexión fallida a la base de datos. Si los permisos están bien pero PrestaShop sigue sin cargar, revisa lo siguiente:
- Que las credenciales de la base de datos sean correctas (usuario, contraseña, nombre de la base y host).
- Que la base de datos no esté caída o saturada.
- Que el usuario de la base de datos tenga permisos suficientes (SELECT, INSERT, UPDATE, DELETE).
Para comprobarlo desde DirectAdmin:
- Ve a MySQL Management en tu panel.
- Verifica que la base de datos existe y que el usuario tiene privilegios.
- Si todo parece correcto, intenta hacer una copia de seguridad y restaurarla, o simplemente repara las tablas con phpMyAdmin.
[WARNING] Si cambias las credenciales de la base de datos, asegúrate de actualizarlas también en el archivo
app/config/parameters.php. De lo contrario, PrestaShop no podrá conectarse y mostrará el error 500.
Cómo solucionar el error 500 cuando PrestaShop no carga tras una actualización o migración
Si el error 500 aparece después de actualizar PrestaShop o de migrar de servidor, el problema suele ser una mezcla de permisos y archivos obsoletos.
Limpia la caché de PrestaShop manualmente
A veces, la caché guarda datos antiguos que causan conflictos. Para limpiarla manualmente:
- Ve a la carpeta
var/cachey borra todo su contenido. - Ve a la carpeta
var/logsy borra también su contenido. - Si usas PrestaShop 1.6, busca la carpeta
cacheen la raíz y borra los archivos que contenganclass_indexocache_(pero no la carpeta).
Revisa los permisos de los módulos
Algunos módulos crean sus propias carpetas con permisos incorrectos. Si el error 500 aparece al activar un módulo o al acceder a una página que usa un módulo específico, revisa los permisos de la carpeta del módulo en /modules.
La solución es cambiar los permisos de la carpeta del módulo a 755 y los archivos a 644.
Solución definitiva: restablecer permisos en masa con un comando SSH
Si tienes acceso SSH a tu servidor (a través de DirectAdmin puedes habilitar el acceso SSH), la solución más rápida y completa es usar un comando para restablecer todos los permisos de una sola vez.
Conecta por SSH y ejecuta:
find /ruta/a/tu/prestashop -type f -exec chmod 644 {} \;
find /ruta/a/tu/prestashop -type d -exec chmod 755 {} \;
Esto aplica 644 a todos los archivos y 755 a todas las carpetas. Es la configuración estándar recomendada por PrestaShop.
[TIP] Si tu hosting usa un usuario diferente para PHP (por ejemplo,
nobodyowww-data), puede que necesites permisos775en las carpetas de escritura. Prueba primero con755y, si no funciona, cambia a775.
¿Qué hago si nada de esto funciona?
Si has seguido todos los pasos y el error 500 PrestaShop persiste, puede que el problema esté en el servidor en sí, no en tu instalación. En ese caso:
- Revisa los logs del servidor. En DirectAdmin, ve a Logs → Error Logs y busca errores recientes relacionados con tu dominio.
- Contacta con tu proveedor de hosting, explicando que has verificado permisos,
.htaccessy base de datos. - Si tu hosting usa Syspanel (antes conocido como HestiaCP), recuerda que el puerto de acceso es el 2106. Puedes usar Syspanel para reiniciar servicios o revisar la configuración del dominio.
[INFO] Aunque esta guía está enfocada en DirectAdmin, los principios son los mismos en otros paneles como cPanel o Syspanel. Si usas Syspanel, el acceso se realiza a través del puerto 2106 y las opciones de permisos están en el Administrador de archivos.
Preguntas frecuentes sobre el error 500 en PrestaShop
¿Por qué el error 500 aparece solo en algunas páginas?
Suele deberse a permisos incorrectos en carpetas específicas, como var/cache, img o la carpeta de un módulo. También puede ser un problema de configuración de URL amigables o del .htaccess.
¿Es seguro usar permisos 777 para solucionar el error?
No, nunca uses 777 de forma generalizada. Es un riesgo de seguridad enorme. Usa 755 para carpetas y 644 para archivos. Si necesitas más flexibilidad, usa 775 en carpetas de escritura específicas.
¿El error 500 puede deberse a un problema de PHP?
Sí, a veces el error 500 está relacionado con la versión de PHP. PrestaShop 1.7 requiere PHP 7.1 o superior. Si tu servidor usa PHP 5.6, es probable que tengas errores. Desde DirectAdmin puedes cambiar la versión de PHP en Extra Features → PHP Selector.
¿Debo borrar la carpeta var/cache siempre?
Sí, es una práctica segura. Borrar el contenido de var/cache no elimina datos importantes, solo la caché temporal. PrestaShop la regenerará automáticamente.
¿Cómo sé si el problema es del servidor y no de mi tienda?
Si has probado todo lo anterior y el error persiste, revisa los logs del servidor. Si ves errores de "permiso denegado" o "segfault", el problema está en la configuración del servidor. Contacta con tu proveedor de hosting.
Resumen final: tu checklist para solucionar el error 500 en PrestaShop
Sigue este orden y resolverás el problema en el 90% de los casos:
- Activa el modo de depuración para ver el error real.
- Revisa y corrige los permisos de carpetas (
755) y archivos (644). - Limpia la caché de
var/cacheyvar/logs. - Regenera o reemplaza el archivo
.htaccess. - Verifica la conexión con la base de datos.
- Revisa los permisos de los módulos.
- Si nada funciona, usa SSH para restablecer permisos en masa.
- Consulta los logs del servidor y contacta con soporte si es necesario.
Con esta guía, el error 500 PrestaShop dejará de ser un misterio. La mayoría de las veces, la solución está en los permisos que gestionas desde DirectAdmin. Tómate tu tiempo, sigue los pasos con calma y verás cómo tu tienda vuelve a cargar sin problemas.
