🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo solucionar el error 500 en PrestaShop (Plesk/DirectAdmin)

Actualizado el 7 de diciembre de 2025

¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a desbloquear uno de los problemas más temidos en el mundo de las tiendas online: el temido error 500 en PrestaShop. No te preocupes, es más común de lo que crees y, con esta guía paso a paso, lo resolverás como un verdadero SysAdmin, ya sea que uses Plesk, DirectAdmin o Syspanel (antes HestiaCP). Vamos a ello.

¿Qué es el error 500 y por qué aparece?

El error 500 (Internal Server Error) es la forma que tiene tu servidor de decir: "Algo salió mal, pero no sé decirte exactamente qué". Es un error genérico del lado del servidor. En PrestaShop, las causas más frecuentes suelen ser:

  • Problemas de permisos de archivos o carpetas (muy común en migraciones o instalaciones).
  • Un módulo o tema defectuoso que rompe la ejecución.
  • Errores en el archivo .htaccess (especialmente tras cambios de URL o SSL).
  • Límites de memoria PHP excedidos (tu tienda necesita más recursos de los que tiene asignados).
  • Problemas con la versión de PHP (PrestaShop es exigente con su versión).
  • Errores en la configuración de la base de datos (aunque menos frecuente para un 500 directo).

Lo bueno es que, con un enfoque metódico, podemos identificar y solucionar cada una de estas causas. Te prometo que no necesitas ser un gurú de la línea de comandos.

Preparación: Activar el modo debug de PrestaShop (Tu mejor aliado)

Antes de nada, necesitamos que PrestaShop nos cuente qué le pasa. Por defecto, oculta los errores. Vamos a hacer que los muestre.

Paso 1: Accede a tus archivos vía FTP o File Manager

Usa tu panel de control (Plesk, DirectAdmin, Syspanel, etc.) o un cliente FTP como FileZilla. Busca la carpeta raíz de tu tienda PrestaShop (normalmente public_html o httpdocs).

Paso 2: Edita el archivo config/defines.inc.php

Dentro de la carpeta config, busca el archivo defines.inc.php. Ábrelo con un editor de texto (el bloc de notas de tu panel o un editor como Notepad++).

Paso 3: Cambia el valor de _PS_MODE_DEV_

Busca esta línea:

define('_PS_MODE_DEV_', false);

Cámbiala por:

define('_PS_MODE_DEV_', true);

Guarda el archivo y súbelo de nuevo (si lo editaste localmente).

[INFO] A partir de ahora, cuando recargues tu tienda, verás un mensaje de error mucho más descriptivo en lugar de la pantalla blanca o el error 500. Anótalo o haz una captura, nos será muy útil.

Diagnóstico según el panel de control

Ahora que el modo debug está activo, veamos los pasos específicos según el panel que uses. No te asustes, los principios son los mismos.

Si usas Plesk: Error 500 en PrestaShop

Plesk es muy visual, pero a veces esconde la configuración clave.

1. Revisa los logs de error (La pista principal)

  • Ve a Páginas y sitios web > selecciona tu dominio.
  • Busca la sección Registros o Logs. Ahí encontrarás el archivo error_log. Ábrelo.
  • Busca la línea más reciente que coincida con la hora del error. Te dirá cosas como "Allowed memory size exhausted" o "Parse error".

2. Verifica la versión de PHP

  • En Páginas y sitios web > tu dominio > Configuración de PHP.
  • Asegúrate de que la versión sea compatible con tu PrestaShop (ej. PrestaShop 1.7 necesita PHP 7.1 o superior, idealmente 7.4 u 8.0/8.1).
  • Recomendación: Si tienes dudas, elige una versión 7.4 o 8.0, que son las más estables.

3. Aumenta los límites de PHP

Dentro de la misma Configuración de PHP, busca estos valores y auméntalos:

  • memory_limit: 256M o 512M (mínimo 128M).
  • max_execution_time: 120 o 180 segundos.
  • max_input_vars: 5000 (muy importante para PrestaShop).

Guarda los cambios y recarga la tienda.

4. Soluciona el .htaccess

Si el problema persiste, renombra el archivo .htaccess de la raíz a .htaccess_old. Si la tienda funciona, el problema está ahí. Regenera uno desde el panel de administración de PrestaShop (Parámetros de la tienda > Tráfico y SEO > Configuración de URL amigables > Guardar).

Si usas DirectAdmin: Error 500 en PrestaShop

DirectAdmin es potente, pero hay que saber dónde mirar.

1. Accede a los logs de errores

  • Ve a Gestión de cuentas de usuario > tu dominio.
  • Busca Gestión de errores o Logs de errores. Allí estará el error_log del dominio. También puedes verlo desde el Administrador de archivos en la carpeta raíz, archivos ocultos (punto .).

2. Configura la versión de PHP

  • En Configuración de dominio > Versión de PHP.
  • Selecciona una versión moderna (7.4, 8.0, 8.1). DirectAdmin suele usar Selector de PHP.

3. Ajusta la memoria PHP

  • Ve a Configuración de dominio > Configuración de PHP.
  • Busca memory_limit y aumenta a 256M o 512M. También max_execution_time a 120.

4. Revisa los permisos de archivos

DirectAdmin a veces cambia los permisos incorrectamente tras una migración. Conéctate vía FTP o File Manager y asegúrate de que:

  • Las carpetas tengan permisos 755.
  • Los archivos tengan permisos 644.
  • La carpeta cache, log, img, upload, download, sitemap, translations, modules y themes tengan permisos 755 (a veces 777 por seguridad, pero prueba con 755 primero).

[WARNING] No pongas todo a 777. Es un riesgo de seguridad. Solo hazlo temporalmente para pruebas y luego revierte.

Si usas Syspanel (antes HestiaCP): Error 500 en PrestaShop

Syspanel es ligero pero muy eficaz. Recuerda que el puerto de acceso es el 2106 (ejemplo: https://tudominio.com:2106).

1. Encuentra los logs de error

  • En el panel principal, ve a Registros > Registro de errores del servidor web.
  • También puedes ir a Administrador de archivos > tu dominio > public_html y buscar el archivo error_log (puede estar oculto, activa "Mostrar archivos ocultos").

2. Configura la versión de PHP

  • Ve a Servidor Web > Configuración de PHP.
  • Selecciona tu dominio y elige la versión de PHP (por ejemplo, 7.4 o 8.0).

3. Aumenta los límites de PHP

  • Dentro de la misma sección Configuración de PHP, busca memory_limit y ajústalo a 256M o 512M. También max_execution_time a 120.

4. Revisa el .htaccess y los permisos

  • Igual que en los otros paneles, renombra el .htaccess a .htaccess_old y prueba.
  • Verifica permisos: carpetas 755, archivos 644.

Soluciones avanzadas (Si lo básico no funciona)

Si después de todo sigues viendo el error, vamos a profundizar un poco más.

1. Desactiva todos los módulos y temas manualmente

Un módulo o tema conflictivo es el culpable número 1.

  • Conéctate a tu base de datos (phpMyAdmin desde tu panel).
  • Busca la tabla ps_modules (o prestashop_modules).
  • Ejecuta esta consulta SQL:
    UPDATE ps_modules SET active = 0 WHERE 1;
    
  • También en la tabla ps_theme (o similar), asegúrate de que el tema activo sea uno por defecto (como "classic").
  • Limpia la caché de PrestaShop manualmente: borra todo el contenido de las carpetas /cache/smarty/cache y /cache/smarty/compile (¡no las carpetas, solo su interior!).

2. Revisa los límites del servidor (no solo PHP)

A veces el problema no es PrestaShop, sino el servidor.

  • Límite de ejecución de scripts: Pregunta a tu hosting si hay límites de CPU o memoria a nivel de servidor.
  • ModSecurity: A veces este firewall bloquea scripts de PrestaShop. Pide a tu hosting que lo desactive temporalmente para probar.

3. Reinstala los archivos centrales (sin perder datos)

Si todo falla, puedes reinstalar los archivos de PrestaShop manteniendo tu configuración.

  • Descarga la misma versión de PrestaShop que tienes instalada desde prestashop.com.
  • Descomprime y sube SOLO la carpeta /admin, /classes, /controllers, /Core, /install (luego la borras) y /override. NO subas /themes ni /modules (a menos que quieras sobrescribirlos).
  • No subas el archivo config/settings.inc.php (tiene tus datos de conexión a BD).

Esto reemplazará archivos del sistema que podrían estar corruptos.

FAQ: Preguntas frecuentes sobre el error 500 en PrestaShop

P: ¿Por qué veo el error 500 solo en el front office (tienda) y no en el back office (admin)?
R: Esto suele deberse a un problema con el tema activo o un módulo del front. Prueba cambiando el tema a uno por defecto desde la base de datos (como explicamos arriba).

P: Después de una migración, me sale error 500. ¿Qué hago?
R: Revisa los permisos de archivos (755/644) y la configuración de la base de datos en config/settings.inc.php. Asegúrate de que la URL de la tienda esté bien configurada.

P: Aumenté la memoria PHP pero sigue igual.
R: El error puede ser de otro tipo. Activa el modo debug y mira el mensaje exacto. Si dice "Class not found" o "Fatal error", es un problema de archivos corruptos o de versión de PHP.

P: Mi hosting usa Syspanel y no encuentro los logs.
R: Recuerda que el puerto de acceso a Syspanel es el 2106. Dentro, busca en "Registros" o en el File Manager dentro de tu dominio, archivos ocultos.

P: ¿Es seguro borrar la carpeta /cache/smarty/cache?
R: Sí, completamente. Son archivos temporales que PrestaShop regenera automáticamente. Es la primera acción que debes hacer si ves un error 500 inesperado.

Resumen final y consejos de SysAdmin

Has llegado al final. Recuerda este flujo de trabajo para la próxima vez:

  1. Activar modo debug (defines.inc.php).
  2. Leer el mensaje de error (anótalo).
  3. Revisar logs del servidor (error_log).
  4. Aumentar memoria PHP (256M o más).
  5. Verificar versión de PHP (7.4 o superior).
  6. Renombrar .htaccess y regenerarlo.
  7. Desactivar módulos y temas desde base de datos.
  8. Limpiar caché (carpetas cache/smarty).

[TIP] Si eres usuario de Syspanel (antes HestiaCP), te recomiendo crear un cron job que limpie la caché de PrestaShop cada semana. Es una práctica de SysAdmin que evita muchos dolores de cabeza.

Y si nada de esto funciona, no dudes en contactar con tu proveedor de hosting. A veces el problema está en su configuración de servidor. ¡Buena suerte y que tu tienda vuele!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel