Cómo arreglar el error '500 Internal Server Error' en PrestaShop (DirectAdmin)
¿Qué es el error 500 en PrestaShop y por qué aparece en DirectAdmin?
El temido error 500 Internal Server Error es uno de los problemas más comunes (y frustrantes) que puedes encontrar al gestionar una tienda online con PrestaShop. Si estás leyendo esto, probablemente lo estás viendo en tu pantalla ahora mismo: una página en blanco o un mensaje genérico que no te dice nada útil.
La buena noticia es que este error casi siempre tiene solución, y en la mayoría de los casos no requiere que seas un experto en programación. En este artículo te voy a guiar paso a paso para que puedas solucionar el error 500 en PrestaShop cuando tu hosting usa el panel de control DirectAdmin.
Primero, entendamos qué significa realmente este error. El código 500 es una respuesta genérica del servidor que indica que algo falló internamente, pero no especifica qué. Es como si tu coche se parara en medio de la carretera sin luces de aviso: sabes que algo está mal, pero necesitas abrir el capó para descubrirlo.
En el contexto de PrestaShop, las causas más frecuentes suelen ser:
- Archivos con permisos incorrectos (muy común al migrar o subir archivos por FTP).
- Errores de PHP (sintaxis, memoria insuficiente, funciones deshabilitadas).
- Archivos .htaccess corruptos o mal configurados.
- Problemas con el caché de Smarty (el motor de plantillas de PrestaShop).
- Módulos o temas incompatibles que rompen la tienda.
Vamos a atacar el problema desde la raíz, con un método ordenado y seguro. No te saltes pasos, porque cada uno tiene su propósito.
Paso 1: Activa el modo de depuración para ver el error real
Antes de tocar nada, necesitas que PrestaShop te diga qué está fallando exactamente. Por defecto, el error 500 es muy poco informativo, pero PrestaShop tiene un modo de depuración (debug mode) que muestra los detalles del error en pantalla.
¿Cómo activar el modo debug en PrestaShop?
Tienes dos opciones: desde el panel de administración (si aún puedes acceder) o editando un archivo de configuración.
Opción A: Desde el back-office de PrestaShop
- Accede a tu panel de administración de PrestaShop (normalmente en
tudominio.com/admin). - Ve a Parámetros avanzados > Rendimiento.
- Busca la opción Modo de depuración.
- Activa la casilla Sí en la opción "Mostrar errores".
- Guarda los cambios y vuelve a cargar tu tienda.
Si el error 500 te impide entrar al panel, pasa a la opción B.
Opción B: Editando el archivo config/defines.inc.php
- Conéctate a tu hosting por FTP (FileZilla es una buena opción) o usa el administrador de archivos de DirectAdmin.
- Navega hasta la carpeta raíz de tu PrestaShop (donde están las carpetas
config,modules,themes, etc.). - Abre la carpeta
configy busca el archivodefines.inc.php. - Descarga una copia de seguridad de este archivo (por si acaso).
- Ábrelo con un editor de texto plano (nada de Word, usa Notepad++ o Sublime Text).
- Busca la línea que dice
define('_PS_MODE_DEV_', false);y cambiafalseportrue. - Guarda el archivo y vuelve a subirlo al servidor (si lo habías descargado).
Ahora, al recargar tu tienda, verás un mensaje de error mucho más detallado. Anota el mensaje exacto, porque nos va a guiar en los siguientes pasos. Si después de arreglar el problema, recuerda volver a poner false en ese archivo.
[INFO] El modo debug muestra información sensible. No lo dejes activado en producción una vez resuelto el error.
Paso 2: Revisa los logs de error de PrestaShop y DirectAdmin
Si el modo debug no te muestra nada, o si prefieres un enfoque más directo, los logs de error son tu mejor aliado. Aquí es donde el servidor guarda un registro de todos los problemas que ocurren.
¿Dónde están los logs en DirectAdmin?
DirectAdmin guarda los logs de error del servidor en una ubicación específica. Puedes acceder a ellos de dos formas:
Desde el panel de DirectAdmin:
- Inicia sesión en tu panel de DirectAdmin (normalmente en
tudominio.com:2222). - Busca la sección Gestión de errores o Logs (la ubicación exacta puede variar según la versión).
- Busca el archivo
error.logoerror_logcorrespondiente a tu dominio. - Descarga las últimas líneas del archivo para ver el error reciente.
Desde el administrador de archivos:
- En DirectAdmin, ve a Administrador de archivos.
- Navega a la carpeta
domains/tudominio.com/logs/ologs/en la raíz de tu hosting. - Busca el archivo
error.logy ábrelo para ver las últimas entradas.
Logs propios de PrestaShop
PrestaShop también puede tener sus propios logs en la carpeta var/logs/ (en versiones 1.7 y superiores) o log/ (en versiones 1.6 y anteriores). Revisa si hay archivos como prod.log o dev.log y ábrelos con un editor de texto.
[TIP] Si el archivo de logs es muy grande, puedes usar el comando
tail -fdesde la terminal de DirectAdmin (si tienes acceso SSH) para ver las últimas líneas en tiempo real mientras reproduces el error.
Paso 3: Corrige los permisos de archivos y carpetas
Una de las causas más comunes del error 500 prestashop es tener los permisos de archivos incorrectos. Esto suele pasar después de una migración, una subida de archivos por FTP o al restaurar una copia de seguridad.
Los permisos correctos para PrestaShop son:
- Carpetas (directorios): 755
- Archivos: 644
- Archivos que necesitan escritura (como
config/settings.inc.phpo la carpetacache): 777 (aunque algunos recomiendan 755 con propietario correcto).
¿Cómo cambiar los permisos desde DirectAdmin?
- Ve al Administrador de archivos de DirectAdmin.
- Navega hasta la raíz de tu PrestaShop.
- Selecciona todos los archivos y carpetas (Ctrl+A o Cmd+A).
- Haz clic en el botón Cambiar permisos (o "Chmod").
- Introduce
755para las carpetas y644para los archivos. - Aplica los cambios.
Si prefieres usar FTP, selecciona todo desde FileZilla, haz clic derecho y elige "Permisos de archivos...". Marca las casillas según los valores recomendados.
[WARNING] No pongas todos los archivos a 777. Es un riesgo de seguridad grave. Solo los archivos que realmente necesitan escritura deberían tener permisos elevados, y lo ideal es bajarlos después.
Paso 4: Regenera el archivo .htaccess
El archivo .htaccess de PrestaShop es fundamental para el funcionamiento de las URLs amigables y el redireccionamiento. Si está corrupto o tiene reglas incompatibles, puede provocar un error 500.
¿Cómo regenerar el .htaccess de PrestaShop?
- Conéctate por FTP o usa el administrador de archivos de DirectAdmin.
- Busca el archivo
.htaccessen la raíz de tu PrestaShop. Si no lo ves, activa la opción de "mostrar archivos ocultos" en tu cliente FTP. - Descarga una copia de seguridad del archivo actual.
- Elimina el archivo
.htaccessdel servidor. - Ve a tu tienda y entra al panel de administración (si el error te lo permite).
- Ve a Parámetros avanzados > SEO y URLs.
- Haz clic en Guardar (sin cambiar nada). Esto regenerará el archivo
.htaccessautomáticamente.
Si no puedes entrar al panel, crea un archivo .htaccess nuevo con el contenido básico de PrestaShop. Puedes encontrar un ejemplo en la documentación oficial o copiar el de una instalación limpia.
[INFO] Si tu tienda usa URLs amigables, es importante que el módulo de reescritura de Apache esté activo en DirectAdmin. Puedes verificarlo desde Configuración de PHP o contactando con tu proveedor de hosting.
Paso 5: Limpia el caché de Smarty
El caché de Smarty guarda versiones compiladas de las plantillas de tu tema. Si se corrompe, puede provocar errores de renderizado y, en algunos casos, el temido prestashop directadmin error 500.
¿Cómo limpiar el caché de Smarty?
Desde el panel de administración:
- Ve a Parámetros avanzados > Rendimiento.
- En la sección Caché de plantillas, haz clic en el botón Vaciar la caché (o "Clear cache").
- También puedes borrar la caché de Compilación de plantillas y Caché de Smarty.
Manualmente (si no puedes acceder al panel):
- Conéctate por FTP o al administrador de archivos.
- Navega hasta las carpetas
var/cache/(PrestaShop 1.7+) ocache/(PrestaShop 1.6). - Borra todo el contenido de estas carpetas (pero no las carpetas en sí).
- También puedes borrar el contenido de la carpeta
themes/tu_tema/cache/si existe.
Paso 6: Aumenta el límite de memoria de PHP
Otro culpable frecuente del error 500 es que PHP se queda sin memoria. PrestaShop es una aplicación exigente, especialmente si tienes muchos módulos o un catálogo grande.
¿Cómo aumentar el límite de memoria en DirectAdmin?
- En DirectAdmin, busca la sección Configuración de PHP (o "PHP Settings").
- Busca la opción memory_limit.
- Cámbiala a
256Mo512M(si tu plan lo permite). - Guarda los cambios.
Si no encuentras esta opción, puedes crear un archivo .htaccess en la raíz de tu PrestaShop con el siguiente contenido:
php_value memory_limit 256M
php_value max_execution_time 300
O si tu hosting usa PHP-FPM, puedes editar el archivo php.ini desde el administrador de archivos.
[TIP] Si el error 500 aparece solo al hacer acciones concretas (como guardar un producto o generar un PDF), el problema de memoria es casi seguro la causa.
Paso 7: Desactiva módulos o temas sospechosos
Si el error 500 apareció después de instalar un módulo o cambiar de tema, el problema está claramente ahí. Pero a veces no es tan evidente, y un módulo puede estar dando problemas sin que lo sepas.
¿Cómo identificar al culpable?
-
Renombra la carpeta de módulos: Con FTP, cambia el nombre de la carpeta
modulesamodules_backupy crea una nueva carpeta vacía llamadamodules. Si la tienda funciona, el problema es un módulo. Luego ve moviendo los módulos de la copia de seguridad a la nueva carpeta de uno en uno hasta encontrar el que falla. -
Cambia temporalmente de tema: Renombra la carpeta
themes/tu_temaathemes/tu_tema_backupy copia un tema por defecto de PrestaShop. Si el error desaparece, el problema es tu tema.
[WARNING] Este método es invasivo. Haz siempre una copia de seguridad completa antes de empezar, y no modifiques nada en producción sin tener un plan B.
Paso 8: Verifica la versión de PHP
PrestaShop es muy sensible a la versión de PHP que usa tu servidor. Una versión demasiado antigua o demasiado nueva puede provocar errores de compatibilidad.
Versiones recomendadas según tu PrestaShop:
- PrestaShop 1.6: PHP 5.6 o 7.0 (no compatible con PHP 8).
- PrestaShop 1.7: PHP 7.1 a 7.4 (las versiones más recientes de 1.7 también soportan PHP 8.0).
- PrestaShop 8.x: PHP 7.2 a 8.1.
¿Cómo cambiar la versión de PHP en DirectAdmin?
- Ve a Configuración de PHP en DirectAdmin.
- Selecciona la versión de PHP que corresponda a tu PrestaShop.
- Guarda y espera unos segundos.
Si el error 500 apareció después de que tu proveedor actualizara PHP automáticamente, esta es casi seguro la solución.
Paso 9: Revisa los logs de DirectAdmin con más detalle
Si nada de lo anterior funciona, es hora de ponerse más técnico. Vuelve a los logs de DirectAdmin y busca errores específicos de PHP como:
PHP Fatal error: Uncaught Error: Call to undefined function...PHP Warning: require(...): failed to open stream...Allowed memory size exhausted...
Estos mensajes te darán pistas muy concretas sobre qué archivo o función está fallando. Anota el archivo y la línea exacta, y entonces podrás buscar soluciones muy específicas en la documentación de PrestaShop.
Paso 10: Restaura una copia de seguridad
Si has llegado hasta aquí y el error persiste, la solución más rápida (y a veces la única) es restaurar una copia de seguridad reciente de tu tienda.
¿Cómo restaurar en DirectAdmin?
- Ve a Copias de seguridad en DirectAdmin.
- Busca la copia más reciente de tu dominio o base de datos.
- Restaura primero la base de datos y luego los archivos.
- Revisa que los permisos sean correctos después de restaurar.
[TIP] Si no tienes copias de seguridad automáticas, contacta con tu proveedor de hosting. Muchos guardan copias diarias que pueden restaurar por ti.
Preguntas frecuentes sobre el error 500 en PrestaShop
¿Por qué veo el error 500 solo en el back-office y no en la tienda?
Esto suele indicar un problema con un módulo específico del panel de administración o con el tema del back-office. Prueba a desactivar los módulos de administración y a regenerar el caché.
¿Puede el error 500 estar causado por un problema de base de datos?
Sí, aunque es menos común. Si la conexión a la base de datos falla, PrestaShop puede mostrar un error 500. Verifica que tus credenciales de base de datos son correctas en config/settings.inc.php (PrestaShop 1.6) o app/config/parameters.php (PrestaShop 1.7+).
¿Debo contactar con mi proveedor de hosting si no puedo solucionarlo?
Sí, absolutamente. Si has seguido todos los pasos y el error persiste, puede ser un problema del servidor que solo ellos pueden resolver. Explícales que has revisado los logs y que sospechas de un problema de configuración del servidor.
Resumen y consejos finales
El error 500 prestashop en DirectAdmin puede ser frustrante, pero con un método ordenado casi siempre tiene solución. Recuerda el orden lógico: activa el modo debug, revisa los logs, corrige permisos, regenera el .htaccess, limpia el caché, y luego ve subiendo en complejidad.
Algunos consejos finales para evitar futuros sustos:
- Haz copias de seguridad periódicas de tu base de datos y archivos.
- Actualiza PrestaShop y los módulos con cuidado, siempre en un entorno de pruebas primero.
- Mantén un registro de los cambios que haces en tu tienda para poder deshacerlos si algo falla.
Espero que este artículo te haya ayudado a solucionar el error 500. Si te quedas atascado en algún paso, no dudes en buscar ayuda en los foros oficiales de PrestaShop o en contactar con tu proveedor de hosting. ¡Buena suerte con tu tienda!
