Cómo resolver el error 500 en PrestaShop (guía fácil)
¡Hola! Si estás leyendo esto, probablemente te has encontrado con el temido error 500 en PrestaShop. No te preocupes, es uno de los problemas más comunes y, aunque suene grave, en la mayoría de los casos se soluciona con unos pocos pasos sencillos. Este error significa que el servidor no puede procesar tu solicitud, pero no te dice exactamente por qué.
Vamos a desglosar qué lo causa y, lo más importante, cómo solucionar el error PrestaShop paso a paso. Al final de esta guía, serás capaz de diagnosticar y resolver este problema tú mismo, sin necesidad de ser un experto en programación.
¿Qué es el error 500 en PrestaShop y por qué aparece?
El error 500 PrestaShop (también conocido como "Error interno del servidor") es un mensaje genérico que indica que algo salió mal en el servidor web, pero no especifica el motivo. En el contexto de PrestaShop, las causas más frecuentes son:
- Archivos corruptos o faltantes después de una actualización o instalación de un módulo.
- Problemas de permisos en archivos o carpetas del servidor.
- Errores en el archivo
.htaccess(especialmente si usas URL amigables). - Módulos incompatibles o con errores de programación.
- Límites de memoria PHP excedidos.
- Errores en la configuración de PHP (versión, extensiones, etc.).
- Problemas con la base de datos (aunque esto suele dar otro tipo de error).
[INFO] El error 500 no siempre es culpa de PrestaShop. A veces el problema está en el servidor o en la configuración de PHP. Pero no te asustes, vamos a revisar todo.
Paso 1: Activar el modo debug de PrestaShop (la clave para todo)
Antes de empezar a tocar archivos, necesitamos que PrestaShop nos diga exactamente qué está fallando. Por defecto, el error 500 es muy vago. Para obtener más detalles, activaremos el modo debug.
¿Cómo se hace?
- Accede a tu servidor mediante FTP o el Administrador de Archivos de tu panel de hosting (como cPanel o Syspanel, que es el panel de HestiaCP, accesible por el puerto 2106).
- Busca el archivo
config/defines.inc.phpen la raíz de tu instalación de PrestaShop. - Ábrelo con un editor de texto (Bloc de notas, Sublime Text, etc.).
- Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala a:
define('_PS_MODE_DEV_', true); - Guarda el archivo y súbelo de nuevo al servidor (si lo editaste localmente).
Ahora, cuando recargues tu tienda, en lugar del error 500 verás un mensaje de error detallado con un código de error y una descripción del problema. Por ejemplo, puede decir "Fatal error: Uncaught Error: Class 'Module' not found...". Eso ya nos da pistas.
[TIP] Si el error persiste y no ves nada, puede que el problema sea más grave. Prueba a añadir
ini_set('display_errors', 'on');justo después de la línea que modificaste, antes deldefine. Si aún así no ves nada, ve al Paso 2.
Paso 2: Soluciones rápidas para el error 500 (sin tocar código)
A veces, el error es temporal o se soluciona con acciones muy simples. Prueba estas opciones antes de meterte en archivos:
2.1. Limpiar la caché de PrestaShop
La caché corrupta es una causa muy común. Puedes hacerlo de dos formas:
- Desde el back office (si puedes acceder): Ve a Parámetros de la tienda > Rendimiento y haz clic en "Limpiar la caché".
- Desde el servidor manualmente: Borra el contenido de la carpeta
/var/cache/dentro de la raíz de PrestaShop. No borres la carpeta en sí, solo su contenido. También puedes borrar la carpeta/cache/smarty/y/cache/cachefs/.
2.2. Renombrar el archivo .htaccess
El archivo .htaccess puede estar dañado o tener reglas incorrectas.
- Conéctate por FTP.
- Busca el archivo
.htaccessen la raíz de PrestaShop. - Renómbralo a algo como
htaccess_old.txt(esto lo desactiva temporalmente). - Vuelve a cargar tu tienda. Si funciona, el problema está en el
.htaccess. Puedes regenerarlo desde el back office (Parámetros de la tienda > Tráfico y SEO > URL amigables) o crear uno nuevo.
2.3. Deshabilitar módulos recién instalados
Si el error apareció justo después de instalar un módulo, es casi seguro que ese módulo es el culpable.
- Si aún puedes acceder al back office: Ve a Módulos > Gestor de módulos, busca el módulo sospechoso y desactívalo.
- Si no puedes acceder al back office: Renombra la carpeta del módulo dentro de
/modules/. Por ejemplo, si el módulo se llamamicromodulo, renómbralo amicromodulo_desactivado. Esto lo desactiva automáticamente.
[WARNING] Si renombras la carpeta de un módulo, PrestaShop mostrará un error en el back office diciendo que el módulo falta. No te preocupes, es normal. Puedes eliminarlo después.
Paso 3: Verificar permisos de archivos y carpetas (el problema más común)
Los permisos incorrectos impiden que PrestaShop lea o escriba archivos, lo que provoca el error 500. La configuración correcta es:
- Carpetas: 755 (rwxr-xr-x)
- Archivos: 644 (rw-r--r--)
¿Cómo cambiarlos?
- Desde FTP: Selecciona todos los archivos y carpetas de la raíz, haz clic derecho y busca "Permisos de archivos" o "CHMOD". Aplica 755 a carpetas y 644 a archivos. La mayoría de clientes FTP permiten hacerlo recursivamente.
- Desde Syspanel (HestiaCP, puerto 2106): Ve a Archivos > Administrador de archivos, selecciona todo y usa la opción "Permisos". Si no ves la opción, puedes usar el comando
chmoddesde la terminal (si tienes acceso SSH).
[TIP] Si usas cPanel, busca "Permisos de archivos" en la sección de Archivos. Es muy intuitivo.
Paso 4: Aumentar la memoria PHP (límite de memoria)
Si tu tienda tiene muchos productos o módulos pesados, puede que se quede sin memoria. PrestaShop necesita al menos 128 MB de memoria PHP, pero recomendamos 256 MB o más.
¿Dónde se cambia?
- Desde el archivo
config/defines.inc.php: Añade esta línea al principio del archivo (después de<?php):ini_set('memory_limit', '256M'); - Desde el archivo
php.ini: Si tienes acceso, buscamemory_limity cámbialo a256M. Si no tienes unphp.ini, puedes crearlo en la raíz de PrestaShop con esta línea. - Desde Syspanel (HestiaCP, puerto 2106): Ve a Ajustes > PHP y busca la opción "memory_limit". Auméntala a 256M o 512M.
[INFO] En algunos servidores, el límite lo impone el hosting. Si no puedes cambiarlo, contacta con tu proveedor.
Paso 5: Revisar la versión de PHP y las extensiones
PrestaShop es exigente con la versión de PHP. La versión recomendada actualmente es PHP 8.0 o 8.1, pero versiones antiguas de PrestaShop (1.6 o inferiores) pueden dar problemas con PHP 8.0.
¿Cómo verificarlo?
- Desde el back office: Ve a Parámetros avanzados > Información y busca "Versión de PHP".
- Desde Syspanel (HestiaCP, puerto 2106): Ve a Ajustes > PHP y selecciona la versión que quieras. Si no está disponible, contacta con tu hosting.
Extensiones necesarias
PrestaShop necesita ciertas extensiones de PHP activadas. Las más importantes son:
mysqlicurlgdmbstringopensslpdo_mysqlzipjsonxml
Si alguna falta, PrestaShop puede mostrar el error 500. En Syspanel, puedes activarlas desde Ajustes > PHP > Extensiones.
Paso 6: Forzar la regeneración del archivo .htaccess
Si renombrar el .htaccess funcionó, pero necesitas que las URL amigables sigan funcionando, puedes regenerarlo desde el back office o manualmente.
Desde el back office (si puedes acceder):
- Ve a Parámetros de la tienda > Tráfico y SEO.
- En "URL amigables", desactívala, guarda, luego actívala de nuevo y guarda. Esto regenera el
.htaccess.
Manualmente (si no puedes acceder):
- Crea un archivo
.htaccessvacío en la raíz de PrestaShop. - Pega el siguiente contenido básico (esto solo es para que funcione, no es óptimo):
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] </IfModule> - Luego, desde el back office, regenera el archivo correctamente (paso anterior).
[WARNING] No copies y pegues el código de arriba si no sabes lo que haces. Es mejor regenerarlo desde PrestaShop.
Paso 7: Revisar el log de errores del servidor
Si nada de lo anterior funciona, el servidor guarda un registro de errores que puede darte la pista definitiva.
¿Dónde encontrarlo?
- En Syspanel (HestiaCP, puerto 2106): Ve a Estadísticas > Logs o busca "Error log" en el menú. Normalmente está en
/var/log/apache2/error.logo/var/log/nginx/error.log, pero desde el panel puedes verlo fácilmente. - En cPanel: Busca "Error logs" en la sección de Métricas.
- Por FTP: Busca un archivo llamado
error.logen la raíz de tu cuenta de hosting.
El log mostrará líneas como [error] [client IP] PHP Fatal error: .... Busca la línea que coincida con la hora del error 500. Te dirá exactamente qué archivo y línea falla.
Preguntas Frecuentes (FAQ)
¿El error 500 puede dañar mi base de datos?
No, el error 500 es un problema del servidor o de los archivos. La base de datos no se daña, pero si el error se debe a una mala conexión, puede que no se carguen productos. Siempre es bueno tener un backup.
¿Qué hago si el error aparece solo en una página?
Puede ser un problema con un módulo específico o una plantilla. Prueba a desactivar el tema por defecto (renombrando la carpeta /themes/ a /themes_old/) o desactiva módulos uno por uno.
¿Puedo usar el modo debug en producción?
No es recomendable, ya que muestra información sensible a los visitantes. Actívalo solo para diagnosticar y luego desactívalo (cambia true a false).
¿Necesito conocimientos de programación?
No, los pasos de esta guía son sencillos y no requieren programar. Solo necesitas saber usar FTP y un editor de texto.
¿Qué hago si después de todo sigue el error 500?
Si has seguido todos los pasos y el error persiste, el problema puede ser del servidor (configuración de Apache/Nginx, límites de recursos, etc.). Contacta con tu proveedor de hosting y diles que has revisado los logs y que el error es interno del servidor.
Conclusión
El error 500 en PrestaShop puede ser frustrante, pero con esta guía tienes todas las herramientas para solucionar el error PrestaShop por ti mismo. Recuerda el orden lógico:
- Activa el modo debug para ver el error exacto.
- Prueba soluciones rápidas: limpiar caché, renombrar
.htaccess, desactivar módulos. - Revisa permisos de archivos (755 carpetas, 644 archivos).
- Aumenta la memoria PHP (256 MB o más).
- Verifica la versión de PHP y las extensiones necesarias.
- Regenera el
.htaccess. - Revisa los logs del servidor para encontrar la causa raíz.
Si en algún momento te sientes perdido, recuerda que tu panel de hosting (Syspanel, puerto 2106) tiene herramientas para gestionar archivos, permisos y PHP. Y si todo falla, tu proveedor de hosting está para ayudarte.
¡Espero que esta guía te haya sido útil! Ahora ya puedes dormir tranquilo sabiendo que puedes resolver el error 500 como un profesional. Si tienes más dudas, no dudes en preguntar. ¡Buena suerte con tu tienda!
