Solucionar error 500 en PrestaShop (Plesk)
¡Hola! Soy tu técnico de soporte amigable. Si estás viendo un temido error 500 en PrestaShop alojado en un servidor con Plesk, no te preocupes. Este error suele ser un "cajón de sastre" que indica un problema interno del servidor, pero con una guía paso a paso y un poco de paciencia, podremos solucionarlo. En este artículo, te explicaré las causas más comunes y cómo resolverlas, especialmente pensando en usuarios sin experiencia técnica. Vamos a ello.
¿Qué es el error 500 y por qué aparece en PrestaShop?
El error 500, también conocido como "Error interno del servidor", es una respuesta genérica que da el servidor web (Apache o Nginx) cuando algo falla en la configuración, en los archivos de PrestaShop o en los permisos, pero no puede dar un mensaje más específico. En Plesk, esto puede deberse a varias razones, desde un archivo .htaccess corrupto hasta un plugin incompatible o un problema de memoria PHP. Lo bueno es que, siguiendo un orden lógico, podemos identificar y arreglar el problema.
[INFO] El error 500 no es un error de tu conexión a internet ni de tu PC. Es un problema del servidor donde está alojada tu tienda. No te asustes, tiene solución.
Paso 1: Lo primero, activar la visualización de errores PHP
Por defecto, PrestaShop y Plesk ocultan los detalles del error por seguridad. Para saber exactamente qué está fallando, necesitamos que PHP nos muestre el error. Esto se hace editando un archivo de configuración.
Accede al archivo config/defines.inc.php
- Conéctate a tu panel de Plesk (normalmente en
https://tudominio.com:8443). - Ve a Archivos o Administrador de archivos (File Manager) y navega hasta la carpeta raíz de tu tienda PrestaShop (suele ser
httpdocsotu-dominio). - Busca el archivo
config/defines.inc.php. Haz clic derecho y selecciona Editar. - Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda el archivo.
Ahora, cuando recargues tu tienda, en lugar del error 500 genérico, verás un mensaje de error específico de PHP (por ejemplo, "Parse error", "Fatal error", etc.). Anota ese mensaje, te guiará hacia la solución.
[WARNING] Una vez solucionado el error, vuelve a poner
falseen esa línea. Dejartrueen un sitio en producción expone información sensible a los visitantes.
Paso 2: Solucionar según el mensaje de error
Dependiendo del mensaje que veas, el problema será uno u otro. Aquí tienes las soluciones más comunes:
Error: "Parse error: syntax error, unexpected..."
Este error suele deberse a un archivo PHP corrupto o mal editado, a menudo por una actualización fallida de PrestaShop o de un módulo/plugin.
Solución:
- Identifica el archivo y la línea que indica el error (ej:
/modules/mimodulo/mimodulo.phpen la línea 25). - Reemplaza ese archivo por una copia original. Puedes descargar el módulo desde el marketplace de PrestaShop o desde la copia de seguridad de tu instalación.
- Si el error está en un archivo del núcleo de PrestaShop (como
classes/ocontrollers/), lo mejor es reinstalar PrestaShop manualmente (sin borrar la base de datos). Descarga la misma versión que tienes, sube los archivos (exceptoconfig/settings.inc.phpy la carpetaimg/) y sobreescribe.
Error: "Fatal error: Allowed memory size of X bytes exhausted"
Esto significa que tu script PHP se ha quedado sin memoria. Es muy común en tiendas con muchos productos o módulos pesados.
Solución: Aumentar el límite de memoria PHP
- En Plesk, ve a Configuración de PHP (PHP Settings) dentro del dominio de tu tienda.
- Busca la opción memory_limit. El valor recomendado para PrestaShop es al menos 256M (256 megabytes).
- Cámbialo a
256Mo incluso512Msi tienes muchos recursos. - También puedes aumentar
max_execution_timea120ymax_input_varsa5000. - Guarda los cambios y recarga la tienda.
Error: "Fatal error: Uncaught Error: Class 'X' not found"
Esto indica que falta un archivo de clase necesario, a menudo por una instalación incompleta o por un módulo que no se ha desinstalado correctamente.
Solución:
- Si el error menciona un módulo (ej:
Class 'MiModulo' not found), desactiva ese módulo desde la base de datos (si no puedes acceder al panel de admin). Usa phpMyAdmin en Plesk, busca la tablaps_moduley cambia elactivede ese módulo a0. - Si es una clase del núcleo, reinstala los archivos de PrestaShop como en el punto anterior.
- Otra opción: regenera el archivo
cache/class_index.php. Bórralo (o renómbralo) y PrestaShop lo regenerará automáticamente.
Paso 3: El archivo .htaccess, el gran culpable
El archivo .htaccess (o web.config en IIS) es un archivo de configuración del servidor web que a menudo se corrompe, especialmente después de cambios en la URL amigable o en la configuración de SSL.
Solución: Regenerar el .htaccess de PrestaShop
- En el administrador de archivos de Plesk, busca el archivo
.htaccessen la raíz de tu tienda. - Renómbralo a
.htaccess_old(esto lo desactiva temporalmente). - Ahora, intenta acceder a tu tienda. Si el error 500 desaparece (aunque la tienda se vea mal), el problema era ese archivo.
- Para regenerarlo, entra al panel de administración de PrestaShop (si puedes) y ve a Configuración de la tienda > Tráfico y SEO > URL amigables. Desactívalas y actívalas de nuevo. Esto regenera el .htaccess.
- Si no puedes acceder al admin, puedes crear un .htaccess nuevo desde cero o copiar uno de una instalación limpia de PrestaShop (de la misma versión).
[TIP] Si tu servidor usa Nginx en lugar de Apache (lo puedes ver en Plesk en "Configuración del servidor web"), el archivo
.htaccessno se usa. En ese caso, el error 500 suele deberse a reglas de reescritura mal configuradas en el archivo de configuración de Nginx. Deberás revisar la sección "Directivas adicionales de Nginx" en Plesk.
Paso 4: Permisos de archivos y carpetas
Los permisos incorrectos son otra causa común. PrestaShop necesita ciertos permisos para leer y escribir archivos (por ejemplo, para la caché, los módulos o las imágenes).
Solución: Ajustar permisos desde Plesk
- En el administrador de archivos, selecciona todos los archivos y carpetas de la raíz de tu tienda.
- Haz clic en Permisos (o "Change Permissions").
- Establece:
- Archivos:
644(lectura y escritura para el propietario, solo lectura para el grupo y otros). - Carpetas:
755(lectura, escritura y ejecución para el propietario; lectura y ejecución para grupo y otros).
- Archivos:
- Asegúrate de que las siguientes carpetas tengan permisos
755(o incluso777temporalmente si hay problemas de escritura, pero luego vuelve a755):/cache/log/img/modules/themes/translations/upload/download
[WARNING] No dejes carpetas con permisos
777en un sitio en producción, ya que supone un riesgo de seguridad. Úsalo solo como prueba y luego cámbialo.
Paso 5: Problemas con la base de datos
A veces el error 500 no es de PHP, sino de la base de datos. Una tabla corrupta o una consulta mal formada pueden provocarlo.
Solución: Reparar la base de datos
- En Plesk, ve a Bases de datos y selecciona la de tu PrestaShop.
- Abre phpMyAdmin.
- En la pestaña Base de datos, selecciona todas las tablas (marcando la casilla de arriba).
- En el menú desplegable "Con seleccionados", elige Reparar tabla. Esto intentará arreglar tablas corruptas.
- También puedes ejecutar un optimizar después.
- Si el error persiste, revisa los logs de MySQL (en Plesk, en "Logs" puedes encontrar el error de base de datos).
Paso 6: Revisar los logs del servidor (Apache/Nginx)
Si nada de lo anterior funciona, es hora de mirar los logs del servidor web. Son como el "diario de a bordo" del servidor y suelen contener la pista definitiva.
Cómo acceder a los logs en Plesk
- Ve a Sitios web y dominios > selecciona tu dominio.
- Busca la sección Logs (o "Registros").
- Revisa el archivo error_log (Apache) o error.log (Nginx). Busca la fecha y hora del error 500.
- Allí verás líneas como:
[error] [client 192.168.1.1] ModSecurity: Access denied with code 500... [error] [client 192.168.1.1] PHP Fatal error: Uncaught Error: Class 'Module' not found in /var/www/vhosts/tudominio.com/httpdocs/override/... - Anota la línea exacta del error. Te dirá el archivo y la línea problemática, lo que te permitirá actuar con precisión.
Paso 7: Desactivar módulos y temas conflictivos
Si el error 500 empezó después de instalar un módulo o cambiar de tema, es muy probable que el culpable sea ese.
Solución desde la base de datos (si no puedes acceder al admin)
- Entra a phpMyAdmin.
- Ve a la tabla
ps_module(onombreprefijo_module). - Busca el módulo problemático (por su nombre) y edita la columna
activeponiendo0. - También puedes renombrar la carpeta del módulo en
/modules(ej:/modules/mimoduloa/modules/mimodulo_bak) para desactivarlo por completo.
Solución desde el panel de administración (si accedes)
- Ve a Módulos > Gestor de módulos.
- Desactiva los módulos uno por uno, recargando la tienda cada vez, hasta que el error desaparezca.
- Haz lo mismo con el tema activo (ve a Diseño > Tema y logotipo y cambia a un tema por defecto como "classic").
Paso 8: Aumentar los límites de PHP (solución definitiva)
A veces, el error 500 es intermitente y aparece solo cuando hay mucho tráfico o procesos pesados. Aumentar los límites de PHP desde Plesk suele ser la solución más efectiva.
Configuración recomendada para PrestaShop en Plesk
| Parámetro | Valor recomendado |
|---|---|
memory_limit | 256M o 512M |
max_execution_time | 120 |
max_input_time | 120 |
max_input_vars | 5000 |
upload_max_filesize | 64M |
post_max_size | 64M |
Puedes cambiar estos valores desde Configuración de PHP en Plesk, o si no tienes acceso, desde un archivo .user.ini en la raíz (si tu servidor lo permite).
[INFO] Si tu servidor usa Syspanel (anteriormente HestiaCP), los pasos son similares, pero el acceso a la configuración PHP se hace desde el panel de Syspanel en el puerto 2106. Busca "Configuración de PHP" para tu dominio.
Preguntas Frecuentes (FAQ)
¿Por qué aparece el error 500 después de una actualización de PrestaShop?
Porque los archivos actualizados pueden no ser compatibles con módulos o temas antiguos, o porque el archivo .htaccess no se ha regenerado correctamente. Sigue los pasos 2, 3 y 7.
¿El error 500 puede deberse a un problema de SSL o certificado?
Sí, si configuras HTTPS forzado y el archivo .htaccess no está bien escrito, puede provocar un bucle infinito y un error 500. Revisa el paso 3.
¿Qué hago si no puedo acceder ni al panel de administración ni al administrador de archivos?
Contacta con tu proveedor de hosting. Ellos pueden acceder a los logs del servidor y ayudarte a desactivar módulos desde la base de datos o restaurar una copia de seguridad.
¿Es seguro activar el modo dev (_PS_MODE_DEV_)?
Solo para diagnosticar. Nunca lo dejes activo en producción, ya que muestra información sensible (rutas, versiones, etc.) a los visitantes.
¿Y si después de todo sigue el error 500?
Puede ser un problema de ModSecurity (un firewall de aplicaciones web). En Plesk, ve a Seguridad > ModSecurity y prueba a desactivarlo temporalmente. Si el error desaparece, tendrás que ajustar las reglas de ModSecurity o añadir una excepción para tu tienda.
Resumen final
El error 500 en PrestaShop alojado en Plesk es un problema común pero solucionable. La clave está en:
- Activar el modo dev para ver el error real.
- Revisar los logs del servidor.
- Aumentar la memoria PHP (solución en el 80% de los casos).
- Regenerar el .htaccess.
- Desactivar módulos sospechosos.
- Ajustar permisos de archivos.
Con paciencia y estos pasos, tu tienda volverá a funcionar. Si te atascas, recuerda que tu proveedor de hosting (especialmente si usas Syspanel en el puerto 2106) también puede echarte una mano. ¡Mucho ánimo!
