Cómo arreglar el error 500 en PrestaShop al usar DirectAdmin
¿Por qué aparece el error 500 en PrestaShop con DirectAdmin?
El temido error 500 es uno de los problemas más comunes, y a la vez más frustrantes, que puedes encontrar al gestionar una tienda online con PrestaShop en un servidor con panel DirectAdmin. La buena noticia es que, en la mayoría de los casos, tiene solución y no implica que hayas perdido tus datos.
Este error, también conocido como error interno del servidor, es una respuesta genérica que indica que algo ha fallado en el servidor, pero sin dar detalles específicos. Es como si el servidor dijera: "Algo ha ido mal, pero no te voy a decir exactamente qué". Para solucionarlo, tendremos que investigar un poco.
Antes de empezar, respira hondo. No eres el primero al que le pasa, ni serás el último. A continuación, te voy a guiar paso a paso para que puedas solucionar el error 500 en PrestaShop con DirectAdmin, incluso si no tienes experiencia técnica avanzada.
Primeros pasos: Diagnóstico inicial y comprobaciones rápidas
Antes de meternos en fango técnico, vamos a hacer algunas comprobaciones rápidas que, en muchas ocasiones, resuelven el problema al instante.
1. Recarga la página y limpia la caché del navegador
A veces, el error 500 es un simple fallo puntual del servidor. Haz una recarga forzada con Ctrl + F5 (o Cmd + Shift + R en Mac). Si el error persiste, prueba a abrir tu tienda en una ventana de incógnito. Si en incógnito funciona, el problema es la caché de tu navegador.
2. Comprueba si el error afecta a toda la tienda o solo a una página
Navega por diferentes secciones de tu tienda (home, categorías, producto, carrito). Si solo falla una página concreta, el problema puede estar en un módulo específico, una plantilla o un contenido concreto. Si falla toda la tienda, el problema es más global (configuración, archivos core, etc.).
3. Verifica si tienes espacio libre en el disco
Un disco duro lleno puede provocar errores extraños. Accede a tu panel de DirectAdmin y busca la sección de "Uso de disco" o "Estadísticas". Si está al 100%, tendrás que liberar espacio (borrar logs antiguos, copias de seguridad innecesarias, etc.).
4. Comprueba los permisos de archivos y carpetas
Los permisos incorrectos son una causa muy frecuente del error interno de PrestaShop. Los permisos correctos generalmente son:
- Carpetas (directorios):
755 - Archivos:
644
Para cambiarlos desde DirectAdmin, usa el Administrador de Archivos:
- Entra en tu cuenta de DirectAdmin.
- Ve a "Administrador de Archivos" y navega hasta la raíz de tu instalación de PrestaShop.
- Selecciona todos los archivos y carpetas (Ctrl+A).
- Haz clic en "Cambiar permisos" y establece
755para carpetas y644para archivos.
[WARNING] No cambies los permisos de la carpeta
configni del archivosettings.inc.phpa algo más permisivo como777. Esto es un riesgo de seguridad grave. Con755y644es suficiente.
Activar el modo de depuración de PrestaShop para ver el error real
El modo de depuración es tu mejor aliado. En lugar de ver un genérico "Error 500", te mostrará el error exacto y la línea donde se produce. Es como quitar la tapa del motor para ver qué pieza falla.
Método 1: A través del archivo defines.inc.php (el más fiable)
Este método es manual, pero muy efectivo y no requiere acceso a la base de datos.
- Accede a tu panel de DirectAdmin y abre el Administrador de Archivos.
- Navega hasta la carpeta
configde tu PrestaShop (normalmente en/public_html/config). - Busca el archivo
defines.inc.php. Haz clic derecho y selecciona "Editar" (o "Edit"). - Busca la línea que dice
define('_PS_MODE_DEV_', false);. - Cámbiala por
define('_PS_MODE_DEV_', true);. - Guarda el archivo y recarga tu tienda.
Ahora, en lugar del error 500, verás un mensaje de error detallado con la ruta del archivo y el número de línea. Anota ese mensaje, es oro puro para la solución.
[TIP] Si no encuentras la línea exacta, usa la función de búsqueda del editor (Ctrl+F) y escribe
_PS_MODE_DEV_.
Método 2: A través del archivo .htaccess (si no puedes editar defines.inc.php)
Si por algún motivo no puedes editar el archivo anterior, puedes añadir estas líneas al final del archivo .htaccess que está en la raíz de tu instalación:
SetEnv PS_DEV_MODE 1
SetEnv PS_DEV_PROMPT 1
Guarda el archivo y recarga la tienda. Deberías ver el error detallado.
[WARNING] IMPORTANTE: Una vez hayas solucionado el error, desactiva el modo de depuración volviendo a poner
define('_PS_MODE_DEV_', false);o borrando las líneas del.htaccess. Dejarlo activo en una tienda en producción es un peligro de seguridad, ya que muestra información sensible a los visitantes.
Errores comunes que causan el error 500 y cómo solucionarlos
Ahora que tienes el mensaje de error exacto, vamos a ver los culpables más habituales y sus soluciones.
1. Problemas con el archivo .htaccess
Este archivo es esencial en PrestaShop. Si está corrupto o tiene directivas incompatibles con el servidor, puede provocar el error 500.
Solución regenerar el .htaccess:
- Desde el Administrador de Archivos de DirectAdmin, navega a la raíz de tu PrestaShop.
- Busca el archivo
.htaccess. Si existe, descárgalo como copia de seguridad y luego elimínalo (o renómbralo a.htaccess.bak). - Ve a tu back-office de PrestaShop: Preferencias > SEO y URLs.
- Sin cambiar nada, haz clic en "Guardar". Esto regenerará un
.htaccessnuevo y limpio. - Recarga tu tienda.
[TIP] Si no puedes acceder al back-office, crea un archivo
.htaccessvacío en la raíz y luego intenta acceder. A veces, un archivo corrupto impide el acceso al panel de administración.
2. Memoria PHP insuficiente (límite de memoria)
PrestaShop es una plataforma exigente. Si el límite de memoria PHP es muy bajo, puede lanzar un error 500 en momentos de alta carga o al realizar acciones complejas.
Solución aumentar el límite de memoria:
- En el Administrador de Archivos, busca el archivo
php.inien la raíz de tu cuenta. Si no existe, créalo. - Añade o modifica la línea:
memory_limit = 256M(puedes probar con512Msi el problema persiste). - Guarda el archivo y reinicia el servicio PHP desde DirectAdmin (si tu plan lo permite).
Si no tienes acceso a un php.ini, puedes intentar añadir esto al archivo .htaccess:
php_value memory_limit 256M
[INFO] Algunos servidores no permiten cambiar la memoria PHP desde
.htaccessophp.ini. Si no funciona, contacta con tu proveedor de hosting para que lo aumente.
3. Módulos o plantillas incompatibles o corruptos
Un módulo recién instalado o actualizado, o una plantilla con errores, es una causa muy común del error 500 en PrestaShop con DirectAdmin.
Solución deshabilitar módulos problemáticos:
- Desde el Administrador de Archivos, navega a
/public_html/modules. - Busca la carpeta del módulo que sospechas que causa el problema (el mensaje de error del modo depuración te dará una pista). Por ejemplo, si el error menciona
/modules/mimodulo/mimodulo.php, ese es el culpable. - Renombra la carpeta del módulo añadiendo un sufijo como
_backupo_old. Por ejemplo:mimodulo_old. Esto desactiva el módulo sin desinstalarlo. - Recarga tu tienda. Si el error desaparece, ya sabes cuál es el problema. Ahora puedes actualizar el módulo o contactar con su desarrollador.
Solución cambiar temporalmente de plantilla:
- Ve a
/public_html/themes. - Renombra la carpeta de tu plantilla activa (por ejemplo,
classicaclassic_old). - Si tienes otra plantilla en la carpeta
themes, renómbrala a la que espera PrestaShop (normalmenteclassic). Si no tienes otra, el error será distinto, pero podrás acceder al back-office. - En el back-office, ve a Preferencias > Temas y selecciona una plantilla predeterminada.
4. Problemas con la base de datos
A veces, la base de datos está corrupta o hay tablas dañadas. PrestaShop puede dar un error 500 si no puede acceder correctamente a los datos.
Solución comprobar la base de datos con phpMyAdmin:
- En DirectAdmin, busca el icono de phpMyAdmin (normalmente en "Base de Datos MySQL").
- Selecciona tu base de datos de PrestaShop (la que aparece en tu archivo
config/settings.inc.php). - En la parte inferior, selecciona "Marcar todas" las tablas.
- En el menú desplegable "Con selección", elige "Reparar tabla". Esto intentará reparar cualquier tabla dañada.
- Vuelve a tu tienda y comprueba si el error persiste.
5. Archivos de caché corruptos
PrestaShop guarda archivos de caché para acelerar la carga. Si estos archivos se corrompen, pueden provocar errores.
Solución borrar la caché manualmente:
- En el Administrador de Archivos, navega a
/var/cache(en versiones nuevas) o/cache(en versiones antiguas). - Dentro, encontrarás carpetas como
dev,prod,class_index.php, etc. - Elimina el contenido de estas carpetas, pero no borres las carpetas en sí. Vacía
devyprod. - También borra el archivo
class_index.php(se regenerará solo). - Recarga tu tienda.
[TIP] Asegúrate de que las carpetas
cache,logysessionstengan permisos de escritura (755 o 775) para que PrestaShop pueda regenerar la caché.
Soluciones avanzadas: Reiniciar PHP y revisar logs del servidor
Si nada de lo anterior funciona, pasamos a la artillería pesada.
1. Reiniciar el servicio PHP desde DirectAdmin
A veces, el proceso de PHP se bloquea. Reiniciarlo puede solucionar el problema.
- En tu panel de DirectAdmin, busca la sección "Servicios" o "Servicios del sistema".
- Busca el servicio de PHP (puede llamarse "PHP-FPM", "LSAPI" o similar).
- Haz clic en "Reiniciar" o "Restart".
2. Revisar los logs de error del servidor
Los logs son el diario de a bordo del servidor. Ahí encontrarás el error exacto.
- En DirectAdmin, ve a "Registros" o "Logs".
- Busca el "Error Log" o "Registro de errores" (normalmente es
error.logoerror_log). - Descarga o visualiza las últimas líneas. Busca marcas de tiempo que coincidan con el momento en que apareció el error 500.
- El log te mostrará la ruta exacta del archivo que falla y el motivo.
3. Comprobar la versión de PHP
PrestaShop es sensible a la versión de PHP. Si tu hosting ha actualizado PHP a una versión demasiado nueva (o demasiado antigua), puede haber incompatibilidades.
- En DirectAdmin, busca "Administrador de PHP" o "Configuración de PHP".
- Comprueba la versión actual. PrestaShop 1.7 y 8.x funcionan bien con PHP 7.4, 8.0 o 8.1.
- Si tienes una versión muy reciente (8.3 o superior) o muy antigua (5.6), prueba a cambiar a una versión intermedia como 8.1.
[WARNING] Cambiar la versión de PHP puede afectar a otros sitios en tu cuenta. Hazlo con cuidado y asegúrate de que tu versión de PrestaShop es compatible.
Prevención: Cómo evitar futuros errores 500
Una vez que hayas solucionado el error 500 en PrestaShop, toma nota de estas buenas prácticas para que no vuelva a aparecer:
- Mantén PrestaShop, los módulos y la plantilla siempre actualizados.
- Haz copias de seguridad periódicas de la base de datos y los archivos (DirectAdmin tiene herramientas para esto).
- No instales módulos de fuentes no confiables.
- Revisa los logs del servidor de vez en cuando para detectar problemas antes de que se conviertan en errores.
- Aumenta el límite de memoria PHP a un valor razonable (256M o 512M) desde el principio.
- Desactiva el modo de depuración cuando no lo estés usando.
Preguntas frecuentes (FAQ)
¿Por qué mi tienda PrestaShop da error 500 solo en el móvil?
Esto es poco común, pero si ocurre, suele estar relacionado con un módulo de caché o una plantilla que no responde bien en dispositivos móviles. Prueba a deshabilitar los módulos de caché (como Memcached o APC) y a cambiar temporalmente a la plantilla por defecto.
¿El error 500 puede deberse a un ataque de hackers?
Sí, es posible. Si un atacante ha modificado archivos, puede provocar errores. Si sospechas de un ataque, revisa los archivos recientemente modificados en el Administrador de Archivos y cambia todas tus contraseñas (admin, base de datos, FTP). Si el error persiste, considera restaurar una copia de seguridad limpia.
¿Puedo solucionar el error 500 sin acceso al back-office?
Sí, la mayoría de las soluciones se realizan a través del Administrador de Archivos de DirectAdmin y de tu base de datos, sin necesidad de entrar al panel de administración de PrestaShop.
¿Qué hago si ninguna de estas soluciones funciona?
Si has agotado todas las opciones, es hora de contactar con tu proveedor de hosting. Dales el mensaje de error exacto que obtuviste al activar el modo de depuración y los logs del servidor. Ellos tendrán acceso a configuraciones más profundas del servidor y podrán ayudarte a solucionar el error interno de PrestaShop.
[INFO] Recuerda que en Syspanel (el panel de control alternativo a DirectAdmin), puedes acceder a las mismas herramientas de gestión de archivos y bases de datos a través del puerto 2106. El proceso de solución es muy similar.
Espero que esta guía te haya sido de gran ayuda. Con paciencia y siguiendo estos pasos, el error 500 en PrestaShop con DirectAdmin será solo un mal recuerdo. ¡Mucha suerte con tu tienda!
