Resolver error 500 en PrestaShop con Plesk
¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, seguramente te has topado con la temida pantalla blanca o el mensaje "500 Internal Server Error" en tu tienda PrestaShop alojada en un servidor con Plesk. No te preocupes, es un problema muy común y, en la mayoría de los casos, se puede solucionar en pocos minutos. En esta guía completa y detallada, te explicaré paso a paso cómo identificar la causa y solucionar error interno (500) en tu PrestaShop.
Vamos a desglosar todo el proceso, desde lo más básico hasta soluciones más avanzadas, para que puedas recuperar tu tienda online sin necesidad de ser un experto en programación. Recuerda que el error 500 PrestaShop es un error genérico del servidor, lo que significa que algo falla en la configuración de tu web, pero no se especifica el motivo exacto. Por eso, vamos a investigar juntos.
¿Qué es exactamente el error 500 en PrestaShop?
El error 500 (Internal Server Error) es un código de estado HTTP que indica que el servidor web encontró una condición inesperada que le impidió completar la solicitud. En términos sencillos: el servidor no sabe cómo procesar lo que le pides (por ejemplo, cargar una página, un producto o el catálogo completo). En PrestaShop, esto suele deberse a problemas con:
- Archivos .htaccess corruptos o mal configurados.
- Errores de PHP (límite de memoria, tiempo de ejecución, etc.).
- Permisos de archivos y carpetas incorrectos.
- Módulos o temas incompatibles o con errores.
- Problemas con la base de datos.
- Configuración del servidor (Plesk) incorrecta.
Vamos a atacar cada una de estas causas, ordenadas de la más sencilla a la más compleja.
Paso 1: Lo primero, ¡no te asustes! Activa el modo debug de PrestaShop
Antes de tocar nada, lo más inteligente es hacer que PrestaShop te muestre el error real. Por defecto, en producción, los errores están ocultos por seguridad. Para verlos, necesitas activar el modo debug.
¿Cómo activar el modo debug?
-
Accede a tu panel de control Plesk. Busca la sección "Archivos" o "Administrador de archivos".
-
Navega hasta la carpeta raíz de tu tienda PrestaShop (normalmente
httpdocsopublic_html). -
Busca el archivo llamado config/defines.inc.php.
-
Descarga una copia de seguridad de este archivo (por si acaso).
-
Edita el archivo con el editor de texto de Plesk (o descárgalo, edítalo con un editor como Notepad++ y súbelo de nuevo).
-
Busca esta línea (normalmente está al principio):
define('_PS_MODE_DEV_', false); -
Cámbiala a:
define('_PS_MODE_DEV_', true); -
Guarda el archivo.
[WARNING]: Activar el modo debug mostrará errores de PHP en tu tienda. Si tu tienda es pública, es mejor hacerlo en un entorno de pruebas o durante un momento de bajo tráfico, ya que los visitantes podrían ver información sensible.
Ahora, recarga la página que te daba el error 500. Verás un mensaje de error mucho más descriptivo, como por ejemplo:
Fatal error: Allowed memory size of X bytes exhausted(problema de memoria PHP).Parse error: syntax error, unexpected...(error en un archivo PHP, a menudo de un módulo).Class 'X' not found(clase de un módulo o tema no encontrada).
Anota ese mensaje, ¡es tu mejor pista! Si no ves nada, puede que el error esté en un archivo .htaccess. Pasemos a eso.
Paso 2: Solucionar el error 500 en PrestaShop causado por el archivo .htaccess
El archivo .htaccess es un archivo de configuración crítico para PrestaShop. Si está dañado, genera un error 500 inmediato.
¿Cómo solucionarlo?
-
Ve a tu panel de Plesk > Archivos.
-
Busca el archivo
.htaccess(puede estar oculto; en Plesk, asegúrate de marcar "Mostrar archivos ocultos"). -
Renómbralo a algo como
.htaccess_old(esto lo desactiva temporalmente). -
Ahora, accede a tu tienda. Si el error 500 desaparece, el problema estaba en el .htaccess antiguo.
-
Para regenerar uno nuevo y limpio:
- Ve al Back Office de PrestaShop (si puedes acceder, claro. Si no, necesitas otro método).
- Ve a Configuración avanzada > Rendimiento.
- Haz clic en el botón "Regenerar archivo .htaccess" (o similar).
- Si no puedes acceder al Back Office, puedes crear un archivo .htaccess básico desde Plesk. Copia este contenido:
# START: PrestaShop <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] </IfModule> # END: PrestaShop- Pega esto en un nuevo archivo llamado
.htaccessy súbelo a la raíz.
[TIP]: Si después de regenerar el .htaccess el error vuelve, es probable que tengas un módulo o tema que está escribiendo reglas incorrectas en él. Desactiva los módulos uno por uno para identificar al culpable.
Paso 3: Aumentar los límites de PHP (memoria, tiempo de ejecución)
Uno de los culpables más frecuentes del PrestaShop Plesk error 500 es la falta de recursos de PHP. PrestaShop, sobre todo con muchos productos o módulos, puede exigir más memoria de la permitida por defecto.
¿Cómo aumentarlos en Plesk?
- En Plesk, ve a la sección "Hosting y DNS" > "Configuración de hosting" (o "PHP Settings").
- Busca la sección de "Configuración de PHP".
- Modifica estos valores (recomendados para PrestaShop):
- memory_limit: 256M o incluso 512M (el mínimo recomendado es 128M).
- max_execution_time: 120 (segundos).
- max_input_time: 120.
- upload_max_filesize: 32M (si subes productos con imágenes grandes).
- post_max_size: 32M.
- Guarda los cambios y recarga la página.
[INFO]: Si tu plan de hosting es muy básico, es posible que no puedas aumentar estos valores más allá de cierto límite. En ese caso, contacta con tu proveedor de hosting.
Paso 4: Verificar y corregir permisos de archivos y carpetas
Los permisos incorrectos son otra causa común. PrestaShop necesita que ciertos archivos y carpetas tengan permisos específicos para poder escribir (por ejemplo, para guardar caché, imágenes, etc.).
¿Cómo verificar los permisos en Plesk?
- En el Administrador de archivos de Plesk, navega a la raíz de tu tienda.
- Selecciona todas las carpetas y archivos (Ctrl+A).
- Haz clic en "Permisos" (o "Cambiar permisos").
- Asegúrate de que:
- Carpetas (directorios): 755 (rwxr-xr-x).
- Archivos (no ejecutables): 644 (rw-r--r--).
- Archivos PHP: 644 (aunque a veces 755 funciona, 644 es más seguro).
- Especial atención a estas carpetas que deben tener permisos 755 (o 777 en algunos casos, pero 755 es más seguro y suele funcionar):
/cache/config/img/log/mails/modules/themes/translations/upload/download
[WARNING]: No establezcas permisos 777 a todo el sitio por pereza. Es un agujero de seguridad enorme. Usa 755 para carpetas y 644 para archivos.
Paso 5: Deshabilitar módulos y temas problemáticos
Si el error 500 apareció después de instalar un nuevo módulo o cambiar de tema, es casi seguro que el culpable es ese.
¿Cómo desactivar módulos sin acceso al Back Office?
Si no puedes ni siquiera entrar al panel de administración, puedes desactivar módulos desde la base de datos o renombrando la carpeta del módulo.
Opción A: Renombrar la carpeta del módulo (más fácil)
- En Plesk, ve a la carpeta
/modules. - Busca la carpeta del módulo que sospechas (por ejemplo, si se llama
supermodulo, busca la carpetasupermodulo). - Renómbrala añadiendo
_oldal final (ej:supermodulo_old). - Recarga tu tienda. Si el error desaparece, ¡has encontrado al culpable!
Opción B: Desde la base de datos (más técnico)
- Ve a Plesk > Bases de datos.
- Haz clic en el nombre de tu base de datos de PrestaShop.
- Ve a la pestaña "phpMyAdmin".
- Busca la tabla
ps_module(el prefijo puede ser diferente, comops_,prestashop_, etc.). - Busca el módulo problemático y cambia su campo
activede1a0. - Guarda los cambios.
[TIP]: Si no sabes qué módulo es, desactiva todos los módulos no esenciales (todos excepto los de PrestaShop por defecto) actualizando la tabla ps_module. Luego, reactívalos uno por uno desde el Back Office para identificar el problema.
Paso 6: Limpiar la caché de PrestaShop
A veces, una caché corrupta puede causar un error 500. Forzar su limpieza manual puede resolverlo.
¿Cómo limpiar la caché manualmente?
- En Plesk, navega a las carpetas:
/cache/smarty/cache/cache/smarty/compile/cache/class_index.php/cache/cachefs(si existe)
- Elimina todo el contenido de las carpetas
cacheycompile(pero no las carpetas en sí mismas). - También puedes eliminar el archivo
class_index.php. - Recarga la tienda.
Paso 7: Comprobar la versión de PHP y PrestaShop
La incompatibilidad entre versiones es una causa frecuente. PrestaShop 1.6, por ejemplo, no funciona bien con PHP 8.0 o superior. PrestaShop 1.7 requiere PHP 7.1 como mínimo.
¿Cómo cambiar la versión de PHP en Plesk?
- En Plesk > Hosting y DNS > Configuración de hosting.
- En la sección "Versión de PHP", selecciona la versión recomendada para tu PrestaShop:
- PrestaShop 1.6: PHP 7.0 o 7.1 (nunca 8.x).
- PrestaShop 1.7: PHP 7.2, 7.3 o 7.4 (PHP 8.0 puede funcionar con algunos parches, pero no es oficial).
- PrestaShop 8.x: PHP 8.0 o 8.1.
- Guarda los cambios.
[INFO]: Si tu PrestaShop es muy antiguo (1.5 o inferior), considera actualizarlo, ya que las versiones modernas de PHP no son compatibles.
Paso 8: Revisar los logs del servidor (Plesk)
Si nada de lo anterior funciona, los logs del servidor son tu mejor amigo. Te darán la pista definitiva.
¿Dónde están los logs en Plesk?
-
En Plesk, ve a "Sitios web y dominios".
-
Haz clic en el nombre de tu dominio.
-
Busca la sección "Logs" (o "Registros").
-
Verás dos tipos principales:
- Access log: Muestra todas las peticiones a tu web.
- Error log: Este es el que te interesa. Muestra los errores del servidor, incluyendo el motivo exacto del error 500.
-
Abre el error log y busca la fecha y hora en que ocurrió el error. Verás líneas como:
[Wed Oct 25 10:00:00 2023] [error] [client X.X.X.X] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/vhosts/tudominio.com/httpdocs/modules/mimodulo/mimodulo.php on line 150Esta línea te dice exactamente qué módulo y qué línea de código causaron el error de memoria. ¡Perfecto!
Paso 9: Soluciones avanzadas (si nada funciona)
Si has llegado hasta aquí y el error persiste, es hora de considerar opciones más complejas:
1. Reparar la base de datos
Una base de datos corrupta puede dar errores extraños.
- Ve a phpMyAdmin (desde Plesk).
- Selecciona tu base de datos.
- Marca la opción "Seleccionar todo".
- En el menú desplegable "Con seleccionados", elige "Reparar tabla".
- Espera a que termine.
2. Forzar la regeneración del archivo settings.inc.php
Este archivo contiene la configuración de conexión a la base de datos. Si está corrupto, todo falla.
- No lo borres, pero puedes compararlo con una copia de seguridad o, si tienes acceso a otro PrestaShop que funcione, copiar la estructura (nunca los valores de conexión, claro).
3. Contactar al soporte técnico
Si el error es a nivel de servidor (por ejemplo, un módulo de Apache mal configurado, problemas de DNS, o un firewall bloqueando), necesitarás que tu proveedor de hosting (el que te proporciona Plesk) revise los logs del servidor a nivel de sistema. Diles que tienes un PrestaShop Plesk error 500 y que ya has revisado los logs de error de tu dominio.
Preguntas frecuentes (FAQ)
P: ¿El error 500 puede deberse a un ataque de hackers?
R: Sí, es posible. Si tu sitio ha sido hackeado, los atacantes suelen modificar archivos .htaccess o inyectar código malicioso en archivos PHP, lo que provoca errores 500. Revisa los archivos en busca de código extraño (líneas con base64_decode, eval, etc.) o restaura desde una copia de seguridad limpia.
P: ¿Cómo puedo prevenir el error 500 en el futuro?
R: Mantén PrestaShop, sus módulos y el tema siempre actualizados. Haz copias de seguridad periódicas. Aumenta los límites de PHP antes de que sean necesarios. No instales módulos de fuentes no fiables. Y, sobre todo, siempre activa el modo debug en un entorno de pruebas antes de aplicar cambios en producción.
P: ¿Si uso Syspanel (HestiaCP) en lugar de Plesk, el proceso es similar?
R: Sí, los pasos son muy parecidos. En Syspanel (HestiaCP), accedes por el puerto 2106 (ej: https://tudominio.com:2106). La estructura de archivos es la misma (public_html). Para cambiar la versión de PHP, en Syspanel ve a Web > Editar dominio > Versión de PHP. Los logs de error los encuentras en **Web
