Solucionar error 500 en PrestaShop (hosting DirectAdmin)
Imagina que estás a punto de abrir tu tienda online, todo listo para vender, y de repente te encuentras con una pantalla en blanco que solo dice "500 Internal Server Error". Es frustrante, lo sabemos. Este es uno de los problemas más comunes en PrestaShop, especialmente cuando el sitio está alojado en un servidor con panel DirectAdmin. Pero no te preocupes, aquí te explicamos paso a paso cómo solucionar error 500 en PrestaShop en un entorno DirectAdmin, incluso si no eres un experto técnico.
¿Por qué aparece el error 500 en PrestaShop?
El error 500 es un código genérico que indica que algo salió mal en el servidor, pero no especifica qué. En PrestaShop, las causas más frecuentes son:
- Archivos .htaccess corruptos o mal configurados (muy común al activar la URL amigable).
- Problemas de permisos de archivos o carpetas (por ejemplo, después de una migración).
- Módulos incompatibles o con errores de código.
- Límites de memoria PHP excedidos (especialmente en tiendas con muchos productos).
- Actualizaciones fallidas de PrestaShop o de algún módulo.
- Errores en el archivo de configuración
config/settings.inc.php(en versiones antiguas) oapp/config/parameters.php.
[INFO] Si ves el error 500 solo en algunas páginas (como el panel de administración o el carrito), el problema suele estar relacionado con un módulo o un archivo específico. Si es en todo el sitio, revisa primero el .htaccess y los permisos.
Primeros pasos en DirectAdmin
Antes de meternos en código, necesitas acceder a tu panel de control. DirectAdmin es el panel que usa tu hosting. Si tu proveedor usa Syspanel (HestiaCP), el acceso es por el puerto 2106 (ejemplo: https://tudominio.com:2106). Una vez dentro, busca el Administrador de Archivos (File Manager) para navegar por los archivos de tu tienda.
[WARNING] Siempre haz una copia de seguridad completa de tu PrestaShop antes de modificar cualquier archivo. Puedes usar la opción de Backup en DirectAdmin o descargar los archivos por FTP.
1. Activar el modo debug de PrestaShop
El error 500 es mudo, pero PrestaShop puede darte más pistas si activas su modo de depuración. Para hacerlo:
- Desde el Administrador de Archivos de DirectAdmin, ve a la carpeta raíz de tu PrestaShop (donde están las carpetas
admin,config,modules, etc.). - Busca el archivo
defines.inc.phpdentro de la carpetaconfig. - Ábrelo con el editor de texto (clic derecho → Edit).
- Localiza la línea:
define('_PS_MODE_DEV_', false); - Cámbiala a:
define('_PS_MODE_DEV_', true); - Guarda los cambios.
Ahora, al recargar tu tienda, en lugar del error 500 verás un mensaje más descriptivo, como "Fatal error: Allowed memory size exhausted" o "Class not found". Ese mensaje te indicará exactamente qué está fallando.
[TIP] Si no ves el archivo
defines.inc.php, puede que tu PrestaShop sea muy reciente (versión 1.7+). Busca enconfig/defines.inc.phpo crea un archivo nuevo con ese contenido.
2. Solucionar el error 500 por .htaccess corrupto
El archivo .htaccess es el culpable en el 70% de los casos. Si activaste la URL amigable o cambiaste la estructura de enlaces, este archivo puede generar un error 500.
Cómo regenerar el .htaccess desde DirectAdmin
- En el Administrador de Archivos, asegúrate de ver los archivos ocultos (hay un checkbox "Show Hidden Files" en la parte superior).
- Busca el archivo
.htaccessen la raíz de tu PrestaShop. - Renómbralo a
.htaccess_old(por si acaso). - Ve al panel de administración de PrestaShop (si puedes acceder).
Si no puedes acceder al admin, salta al siguiente método. - En el menú izquierdo, ve a Configuración de la tienda → Tráfico y SEO → URL amigable.
- Desmarca y vuelve a marcar la opción "URL amigable" y guarda. Esto regenera el .htaccess automáticamente.
Si no puedes entrar al admin, crea un archivo .htaccess nuevo desde DirectAdmin:
- Crea un nuevo archivo de texto llamado
.htaccessen la raíz. - Pega este contenido básico (para PrestaShop 1.6 y 1.7):
# ~~start~~ No modificar <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] </IfModule> # ~~end~~ - Guarda y prueba la tienda.
[WARNING] Si tu hosting usa Nginx en lugar de Apache, el .htaccess no sirve. En ese caso, contacta a tu proveedor para que revise la configuración del servidor.
3. Revisar permisos de archivos y carpetas
Los permisos incorrectos suelen ocurrir después de subir archivos por FTP o hacer una migración. Los valores correctos para PrestaShop son:
- Carpetas: 755 (rwxr-xr-x)
- Archivos: 644 (rw-r--r--)
Cómo corregir permisos en DirectAdmin
- Desde el Administrador de Archivos, selecciona todas las carpetas de tu PrestaShop (Ctrl+A o Cmd+A).
- Haz clic en Change Permissions (Cambiar permisos).
- Marca:
- Propietario: Read, Write, Execute
- Grupo: Read, Execute
- Otros: Read, Execute
Esto da 755.
- Aplica los cambios.
- Luego, selecciona solo los archivos (puedes usar el filtro por tipo) y repite, pero sin marcar Execute (solo Read y Write para propietario, Read para grupo y otros).
[INFO] No olvides la carpeta
cache,logyupload. A veces necesitan permisos 777 temporalmente para que PrestaShop pueda escribir en ellas. Después de solucionar el error, vuelve a 755 por seguridad.
4. Aumentar la memoria PHP (límite memory_limit)
Un error 500 puede aparecer si tu tienda tiene muchas imágenes, módulos pesados o un catálogo grande. El límite de memoria PHP por defecto (128MB) a veces no basta.
Cómo aumentarlo desde DirectAdmin
- Ve a DirectAdmin → Account Manager → PHP Settings (o busca "PHP Selector").
- Busca la opción memory_limit.
- Cámbiala a
256Mo512M. - Guarda y reinicia el servicio PHP (suele haber un botón "Restart" o "Apply").
Si no tienes acceso a PHP Selector, puedes crear un archivo php.ini en la raíz de tu PrestaShop:
- Crea un archivo llamado
php.ini. - Pega:
memory_limit = 256M
max_execution_time = 120 - Guarda y sube a la raíz.
[TIP] También puedes editar el archivo
.htaccess(si existe) y añadir:
php_value memory_limit 256M
5. Deshabilitar módulos problemáticos
Si el error 500 aparece después de instalar o actualizar un módulo, ese módulo es el sospechoso. Pero si no puedes entrar al admin, hay que deshabilitarlo manualmente.
Cómo deshabilitar módulos desde DirectAdmin
- Ve a la carpeta
modulesde tu PrestaShop. - Localiza la carpeta del módulo problemático (por ejemplo,
ps_banner). - Renombra la carpeta añadiendo un guion bajo al inicio (ej:
_ps_banner). Esto desactiva el módulo. - Prueba la tienda. Si funciona, ya sabes cuál es el culpable.
Si no sabes qué módulo está fallando, puedes deshabilitar todos temporalmente:
- Ve a la base de datos desde DirectAdmin → phpMyAdmin.
- Selecciona la base de datos de tu PrestaShop.
- Busca la tabla
ps_module(o{prefijo}_module). - Haz clic en SQL y ejecuta:
UPDATE ps_module SET active = 0 WHERE 1; - Esto desactiva todos los módulos. Luego ve activándolos uno por uno desde el admin.
[WARNING] Si usas Syspanel (HestiaCP), el acceso a phpMyAdmin puede ser desde
https://tudominio.com:2106/phpmyadmin. No olvides las credenciales de la base de datos.
6. Verificar el archivo de configuración
En PrestaShop 1.7+, el archivo app/config/parameters.php contiene la configuración de la base de datos. Si está dañado, da error 500.
- Abre ese archivo desde el Administrador de Archivos.
- Verifica que los datos de la base de datos (host, nombre, usuario, contraseña) sean correctos.
- Busca errores de sintaxis (como comillas faltantes o comas extra). Si no estás seguro, descarga una copia de seguridad y reemplázalo.
7. Preguntas frecuentes (FAQ)
¿El error 500 puede deberse a un problema del servidor?
Sí, especialmente si el hosting tiene sobrecarga o configuraciones de seguridad muy restrictivas. Contacta a tu proveedor de PrestaShop hosting y pregúntales si hay algún bloqueo en el firewall o en el módulo mod_security.
¿Cómo sé si es un error de PHP o de base de datos?
Activa el modo debug (paso 1). Si ves mensajes como "Fatal error: Uncaught Error: Class 'DB' not found", es problema de conexión a la base de datos. Si ves "Allowed memory size", es límite de PHP.
¿Puedo evitar el error 500 en el futuro?
Sí, siguiendo buenas prácticas:
- Mantén PrestaShop y los módulos actualizados.
- Haz copias de seguridad periódicas.
- No instales módulos de fuentes no confiables.
- Aumenta el límite de memoria PHP antes de que sea necesario.
¿Y si nada funciona?
Si después de todos estos pasos el error persiste, puede ser un problema más complejo como un conflicto con el tema o un error en la base de datos. En ese caso, restaura una copia de seguridad anterior o contacta al soporte técnico de tu PrestaShop hosting.
Conclusión
Solucionar error 500 en PrestaShop no es tan complicado como parece. Con las herramientas de DirectAdmin (o Syspanel), puedes diagnosticar y reparar la mayoría de los casos siguiendo estos pasos: activar el modo debug, regenerar el .htaccess, corregir permisos, aumentar la memoria PHP y deshabilitar módulos conflictivos. Recuerda siempre trabajar con copias de seguridad y, si te sientes perdido, no dudes en pedir ayuda a tu proveedor de hosting.
[INFO] Si tu hosting usa Syspanel (HestiaCP), recuerda que el puerto de acceso es el 2106 y las herramientas son similares a DirectAdmin. La lógica de solución es la misma.
Esperamos que este artículo te haya sido de gran ayuda. ¡Tu tienda online estará funcionando en poco tiempo!
