Cómo solucionar error 500 en PrestaShop con Plesk
Si eres un usuario de PrestaShop alojado en un servidor con Plesk, es muy probable que en algún momento te hayas encontrado con el temido error 500. Este mensaje, también conocido como "Error interno del servidor", puede aparecer de repente y sin previo aviso, impidiendo que tu tienda funcione correctamente.
No te preocupes, es un problema mucho más común de lo que parece y, en la mayoría de los casos, tiene una solución sencilla. En esta guía completa y muy visual, te explicaré paso a paso cómo solucionar el error 500 en PrestaShop con Plesk. Vamos a desglosar las causas más frecuentes y las soluciones prácticas, incluso si no eres un experto técnico.
¿Qué significa el error 500 en PrestaShop?
El error 500 o error interno del servidor es una respuesta genérica que da el servidor web (Apache o Nginx) cuando algo falla en la configuración del sitio, pero no puede dar más detalles. Es como si el servidor te dijera: "Algo salió mal, pero no sé exactamente qué". Esto puede deberse a:
- Archivos de configuración corruptos (como
.htaccess). - Falta de memoria o límites de ejecución excedidos.
- Módulos o plugins incompatibles.
- Problemas de permisos de archivos o carpetas.
- Errores en el archivo
config/settings.inc.phpde PrestaShop. - Versiones de PHP incompatibles.
[WARNING] Si ves el error 500 en toda tu tienda (tanto en front-end como en back-end), el problema es más grave que si solo aparece en una página específica. En cualquier caso, las soluciones que te doy aquí cubren ambos escenarios.
Paso 1: Activar el modo debug de PrestaShop (para ver el error real)
Antes de empezar a hacer cambios a ciegas, es fundamental que PrestaShop te muestre el error real. Por defecto, el error 500 oculta la causa. Para verla, debemos activar el modo debug.
[INFO] El modo debug es una herramienta de desarrollo que muestra mensajes de error detallados. Es temporal, solo la usaremos para diagnosticar.
¿Cómo activarlo?
- Accede a tu panel de Plesk. Normalmente es algo como
https://tudominio.com:8443. - Ve a Archivos o Administrador de archivos (depende de la versión de Plesk).
- Navega hasta la carpeta raíz de tu tienda PrestaShop (donde está el
index.php). - Busca el archivo
config/defines.inc.php. Ábrelo con el editor de texto de Plesk. - Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda los cambios.
Ahora, al recargar tu tienda, en lugar del error 500 genérico, verás un mensaje más descriptivo (por ejemplo: "Fatal error: Allowed memory size of 134217728 bytes exhausted..."). Anota ese mensaje, porque te dará la pista clave.
[WARNING] Una vez que hayas solucionado el error, vuelve a cambiar
_PS_MODE_DEV_afalsepara que tu tienda no muestre errores internos a los visitantes.
Paso 2: Aumentar los límites de memoria de PHP (causa #1)
El error más común en PrestaShop es quedarse sin memoria PHP. El mensaje típico es: "Allowed memory size of X bytes exhausted".
Solución desde Plesk:
- En Plesk, ve a Configuración de PHP (suele estar en la sección "Hosting" o "PHP Settings").
- Busca el parámetro
memory_limit. - Auméntalo a 256M o incluso 512M si tu tienda tiene muchos módulos o productos.
- Guarda los cambios y recarga la página.
Si no encuentras esta opción, puedes hacerlo manualmente editando el archivo .htaccess (más abajo te explico cómo).
Paso 3: Revisar y regenerar el archivo .htaccess
El archivo .htaccess es el "director de tráfico" de tu tienda. Si está corrupto o contiene reglas incorrectas, genera el error 500.
¿Cómo regenerarlo desde PrestaShop?
- Ve al Back Office de tu tienda (si puedes acceder). Si no, salta al método manual.
- Ve a Parámetros de la tienda > Tráfico y SEO > SEO y URLs.
- Haz clic en Guardar (sin cambiar nada). Esto regenera el
.htaccess.
Método manual (desde Plesk):
- En Plesk, ve a Archivos y busca el archivo
.htaccessen la raíz de tu tienda. - Renómbralo a algo como
.htaccess_old(esto lo desactiva temporalmente). - Crea un nuevo archivo
.htaccessvacío y pégalo el contenido básico de PrestaShop. Puedes obtenerlo de la documentación oficial o simplemente copia este:
# .htaccess básico para PrestaShop
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
- Guarda y prueba tu tienda. Si funciona, el problema era el
.htaccessantiguo.
[TIP] Si usas módulos de redirección o SEO, es posible que el
.htaccessse corrompa. Siempre ten una copia de seguridad.
Paso 4: Verificar permisos de archivos y carpetas
Los permisos incorrectos pueden impedir que PrestaShop lea o escriba archivos, causando el error 500.
En Plesk:
- Ve a Archivos y selecciona toda la carpeta de tu tienda (la raíz).
- Haz clic en Permisos (o "Change permissions").
- Asegúrate de que:
- Carpetas (directorios): permisos
755(rwxr-xr-x). - Archivos: permisos
644(rw-r--r--). - Archivos especiales como
config/settings.inc.phppueden necesitar644o640.
- Carpetas (directorios): permisos
- Marca la opción "Aplicar a todos los subdirectorios y archivos".
- Haz clic en Aceptar.
[INFO] Si no ves esta opción, desde SSH puedes ejecutar:
find . -type d -exec chmod 755 {} \;yfind . -type f -exec chmod 644 {} \;. Pero en Plesk es más fácil con la interfaz.
Paso 5: Desactivar módulos problemáticos (si puedes acceder al Back Office)
Si el error 500 solo aparece en ciertas páginas (como el catálogo o el carrito), es probable que un módulo esté causando el conflicto.
Solución:
- Ve al Back Office > Módulos > Administrador de módulos.
- Ordena por "Últimas actualizaciones" o busca el módulo que instalaste recientemente.
- Desactívalo temporalmente (haz clic en el botón de "Desactivar").
- Prueba la página que daba error. Si se soluciona, ese módulo es el culpable. Puedes contactar al desarrollador o buscar una alternativa.
Paso 6: Forzar la versión de PHP correcta
PrestaShop 1.7 y versiones posteriores requieren PHP 7.1 o superior. Si tu servidor tiene una versión más antigua, dará error 500.
En Plesk:
- Ve a Configuración de PHP.
- Busca la opción "Versión de PHP" (a veces está en "Hosting Settings").
- Selecciona una versión compatible con tu PrestaShop (por ejemplo, PHP 7.4 o 8.0, pero verifica la compatibilidad de tus módulos).
- Guarda y prueba.
[WARNING] Cambiar la versión de PHP puede romper módulos antiguos. Hazlo con cuidado y ten un backup.
Paso 7: Revisar el archivo config/settings.inc.php
Este archivo contiene la configuración de la base de datos. Si está corrupto, la tienda no arranca.
Solución:
- En Plesk, ve a Archivos y busca
config/settings.inc.php. - Ábrelo y verifica que las líneas de conexión a la base de datos sean correctas:
define('_DB_SERVER_', 'localhost');(o la IP de tu servidor).define('_DB_NAME_', 'nombre_bd');define('_DB_USER_', 'usuario_bd');define('_DB_PASSWD_', 'contraseña_bd');
- Si todo parece correcto, renómbralo a
settings.inc.php_oldy luego regenera el archivo desde el Back Office (si puedes acceder) o desde la herramienta de instalación de PrestaShop.
[TIP] Si no puedes acceder al Back Office, puedes restaurar una copia de seguridad de este archivo.
Paso 8: Usar el modo de mantenimiento y limpiar la caché
A veces, la caché de PrestaShop se corrompe y causa el error 500.
Solución:
- Activa el modo mantenimiento desde Plesk (en "Hosting Settings" o "Website" > "Maintenance Mode"). Esto evita que los usuarios vean el error.
- Limpia la caché de PrestaShop manualmente:
- Ve a Archivos y elimina todo el contenido de la carpeta
var/cache/(ocache/en versiones antiguas). - También puedes eliminar la carpeta
var/cache/prod/yvar/cache/dev/.
- Ve a Archivos y elimina todo el contenido de la carpeta
- Limpia la caché de PHP desde Plesk (suele haber un botón "Clear PHP cache" o similar).
- Desactiva el modo mantenimiento y prueba.
Paso 9: Escalar a soluciones más avanzadas (logs del servidor)
Si nada funciona, toca revisar los logs del servidor. En Plesk:
- Ve a Logs o Registros (suele estar en "Hosting" > "Logs").
- Busca el archivo
error_log(Apache) onginx_error.log(Nginx). - Abre el archivo y busca la línea que coincida con la hora del error 500. Te dará la pista definitiva (por ejemplo, un módulo que falla, un plugin de terceros, etc.).
[INFO] Si no sabes leer logs, busca en Google el error exacto que aparece. Por ejemplo: "PHP Fatal error: Uncaught Error: Call to undefined function ...". Eso te llevará a la solución.
FAQ: Preguntas frecuentes sobre el error 500 en PrestaShop con Plesk
¿Por qué aparece el error 500 después de instalar un módulo?
Porque el módulo puede ser incompatible con tu versión de PrestaShop o PHP. Desactívalo desde el Back Office o renombra su carpeta en /modules/.
¿El error 500 puede deberse a un ataque de hackers?
Sí, es posible. Si tu tienda ha sido comprometida, los archivos pueden estar corruptos. Revisa los archivos .htaccess y index.php en busca de código malicioso.
¿Cómo solucionar el error 500 si no puedo acceder al Back Office?
Usa Plesk para editar archivos, regenerar el .htaccess o aumentar la memoria PHP. Si todo falla, restaura una copia de seguridad reciente.
¿Qué hago si el error 500 aparece solo en la página de inicio?
Revisa el módulo de "Home" o "Slider". Desactívalo desde la base de datos (tabla ps_module) o renombra su carpeta.
¿Puede ser por el certificado SSL?
Raramente, pero si el certificado está mal configurado, puede dar errores mixtos. Verifica que la URL en config/settings.inc.php use https:// y que el certificado esté activo.
Conclusión
El error 500 en PrestaShop con Plesk puede ser frustrante, pero con estos pasos metódicos podrás resolverlo en la mayoría de los casos. Recuerda:
- Activa el modo debug para ver el error real.
- Aumenta la memoria PHP (es la causa #1).
- Regenera el
.htaccess. - Verifica permisos.
- Desactiva módulos problemáticos.
- Limpia la caché.
- Revisa los logs como último recurso.
Si después de todo esto el error persiste, contacta con tu proveedor de hosting o con un desarrollador especializado. ¡No te rindas! Tu tienda online volverá a funcionar.
[TIP] Siempre ten un backup reciente de tu tienda (archivos y base de datos). En Plesk puedes programar backups automáticos. Esto te salvará en caso de desastre.
