Cómo solucionar el error 500 en PrestaShop (cPanel y otros)
¿Te has encontrado con la temida pantalla en blanco o el mensaje "Error 500 Internal Server Error" en tu tienda PrestaShop? No te preocupes, es uno de los problemas más comunes en servidores web y, con la guía adecuada, puedes solucionarlo sin ser un experto. Este error, conocido como error 500 PrestaShop, significa que el servidor encontró una condición inesperada que le impidió completar la solicitud. Las causas pueden ir desde un archivo .htaccess corrupto hasta un plugin conflictivo o problemas de permisos.
En este artículo, te explicaré paso a paso cómo solucionar error 500 en PrestaShop, independientemente de si usas cPanel, Plesk, DirectAdmin o Syspanel (antes conocido como HestiaCP, accesible por el puerto 2106). No necesitas conocimientos avanzados de Linux o SysAdmin; solo sigue estas instrucciones al pie de la letra.
¿Qué es el error 500 y por qué ocurre en PrestaShop?
El error 500 es un código de estado HTTP genérico que indica un problema interno del servidor. En PrestaShop, las causas más frecuentes son:
- Archivos corruptos o incompletos después de una actualización o instalación de módulos.
- Problemas de permisos en archivos o carpetas (por ejemplo, permisos incorrectos en config/settings.inc.php).
- Conflictos de módulos o temas que generan errores de PHP.
- Límite de memoria PHP excedido (memory_limit demasiado bajo).
- Archivo .htaccess dañado o con reglas incorrectas.
- Errores en la configuración del servidor (como directivas de PHP mal configuradas).
[INFO] El error 500 no muestra detalles por seguridad. Para ver el error real, debes activar los logs de errores de PHP o revisar los logs del servidor.
Paso 1: Activar el modo debug de PrestaShop para ver el error real
Antes de tocar nada, activa el modo de depuración de PrestaShop. Esto te mostrará el mensaje de error exacto en lugar de la pantalla en blanco.
- Accede a tu panel de control de hosting (cPanel, Plesk, DirectAdmin o Syspanel).
- Ve al Administrador de archivos o usa un cliente FTP para conectar a tu servidor.
- Busca el archivo config/defines.inc.php en la raíz de tu instalación de PrestaShop.
- Edítalo y cambia la línea:
por:define('_PS_MODE_DEV_', false);define('_PS_MODE_DEV_', true); - Guarda los cambios y recarga tu tienda. Ahora verás el error detallado (por ejemplo, "Fatal error: Allowed memory size exhausted...").
[WARNING] No dejes el modo debug activado en producción, ya que expone información sensible. Desactívalo después de solucionar el error.
Si no puedes acceder al archivo por FTP, también puedes activar el modo debug desde el archivo config/settings.inc.php (en versiones antiguas) agregando al final:
define('_PS_MODE_DEV_', true);
Paso 2: Revisar los logs de errores del servidor
Si el modo debug no muestra nada, revisa los logs del servidor. Aquí te explico cómo hacerlo según tu panel:
En cPanel
- Ve a "Errores" o "Registro de errores" en la sección de métricas.
- Busca el archivo error_log en la raíz de tu sitio (a veces está en /home/usuario/public_html/error_log).
- También puedes usar el Visor de errores de cPanel.
En Plesk
- Ve a "Sitios web y dominios" > selecciona tu dominio > "Registros".
- Busca el archivo error_log o php_error_log en la carpeta del dominio.
En DirectAdmin
- Ve a "Admin Tools" > "Error Logs" o busca el archivo en /var/log/httpd/domains/ o en /home/usuario/domains/tudominio/logs/.
En Syspanel (antes HestiaCP, puerto 2106)
- Accede a tu panel Syspanel (por ejemplo,
https://tuserver:2106). - Ve a "Web" > selecciona tu dominio > "Logs".
- Busca el archivo error.log o php_error.log en la lista.
Los logs te mostrarán la línea exacta del error, como "PHP Fatal error: Uncaught exception..." o "Allowed memory size of X bytes exhausted".
Paso 3: Soluciones rápidas para el error 500 en PrestaShop
Dependiendo del error que veas en los logs o en el modo debug, aplica una de estas soluciones:
3.1 Aumentar el límite de memoria PHP
Si ves "Allowed memory size exhausted", aumenta el memory_limit:
- Busca el archivo php.ini (puedes crearlo en la raíz si no existe).
- Agrega o modifica:
memory_limit = 256M - Si no puedes editar php.ini, usa un archivo .user.ini (en la raíz) o php.ini en la carpeta /public_html.
En cPanel, puedes cambiar esto desde "Seleccionar versión de PHP" > "Opciones de PHP" y ajustar memory_limit.
En Plesk, ve a "Configuración de PHP" de tu dominio.
En DirectAdmin, edita php.ini desde "PHP Settings".
En Syspanel, ve a "Web" > "PHP Settings" de tu dominio.
3.2 Reparar el archivo .htaccess
Un .htaccess corrupto es causa común del error 500.
- Ve al Administrador de archivos.
- Renombra .htaccess a .htaccess.bak (para desactivarlo).
- Recarga tu tienda. Si funciona, el problema está ahí.
- Genera un nuevo .htaccess desde el back office de PrestaShop: Parámetros de la tienda > Tráfico y SEO > Configuración de SEO y URL y haz clic en "Guardar" (sin cambiar nada).
[TIP] Si no puedes acceder al back office, genera un .htaccess básico con solo las reglas de PrestaShop. Puedes descargar uno limpio desde la documentación oficial.
3.3 Desactivar módulos o temas conflictivos
Si el error apareció tras instalar un módulo o cambiar de tema:
- Renombra la carpeta /modules a /modules_old (en la raíz de PrestaShop).
- Recarga la tienda. Si funciona, algún módulo causaba el error.
- Ve renombrando carpetas de módulos uno por uno (o usa el back office si puedes acceder) para identificar el culpable.
- También puedes desactivar el tema actual renombrando la carpeta /themes/nombredeltema a /themes/nombredeltema_old y usando el tema por defecto.
3.4 Verificar permisos de archivos y carpetas
Los permisos incorrectos pueden generar error 500.
- Carpetas: deben tener permisos 755.
- Archivos: deben tener permisos 644.
- Archivos especiales como config/settings.inc.php deben ser 644 o 444 (solo lectura).
Puedes corregir permisos desde el Administrador de archivos de tu panel:
- En cPanel: selecciona todos los archivos y carpetas, haz clic en "Permisos" y establece 755 para carpetas y 644 para archivos.
- En Plesk: usa la opción "Permisos de archivos" en el Administrador de archivos.
- En DirectAdmin: ve a "File Manager" y cambia permisos manualmente.
- En Syspanel: usa el "File Manager" integrado.
[INFO] Si usas FTP, la mayoría de clientes (FileZilla, etc.) permiten cambiar permisos en lote. Selecciona todo y establece 755 para directorios y 644 para archivos.
Paso 4: Soluciones avanzadas para usuarios de Linux y SysAdmin
Si las soluciones básicas no funcionan, prueba estas opciones más técnicas:
4.1 Verificar la versión de PHP
PrestaShop requiere una versión específica de PHP (7.4, 8.0 o 8.1 según la versión de PrestaShop). Una versión incompatible puede causar error 500.
- En cPanel: ve a "Seleccionar versión de PHP" y elige la adecuada.
- En Plesk: "Configuración de PHP" > "Versión de PHP".
- En DirectAdmin: "PHP Settings" > "PHP Version".
- En Syspanel: "Web" > "PHP Settings" > "PHP Version".
4.2 Aumentar el límite de ejecución y otros parámetros PHP
Además del memory_limit, otros parámetros pueden causar el error:
- max_execution_time: 300 (segundos)
- max_input_time: 300
- upload_max_filesize: 64M
- post_max_size: 64M
Edita php.ini o .user.ini con estos valores.
4.3 Revisar los logs de MySQL
A veces el error 500 se debe a problemas en la base de datos. Revisa los logs de MySQL:
- En cPanel: "Registros de errores de MySQL".
- En Plesk: "Herramientas y configuraciones" > "Registros de base de datos".
- En DirectAdmin: "MySQL Management" > "Error Log".
- En Syspanel: "Bases de datos" > "Logs".
Si ves errores de conexión o tablas corruptas, repara la base de datos desde phpMyAdmin (opción "Reparar tabla").
4.4 Forzar la regeneración de la caché de PrestaShop
Una caché corrupta puede provocar errores. Elimínala manualmente:
- Conecta por FTP o Administrador de archivos.
- Borra el contenido de la carpeta /var/cache (excepto el archivo index.php).
- También borra /cache/smarty/compile y /cache/smarty/cache.
- Recarga la tienda.
Preguntas frecuentes (FAQ)
¿Por qué veo un error 500 solo en algunas páginas de mi tienda?
Puede deberse a un módulo específico que se carga en esas páginas, o a un problema con las URL amigables (activa/desactiva desde el back office).
¿El error 500 puede deberse a un ataque o malware?
Sí, archivos infectados pueden causar errores. Escanea tu sitio con herramientas como Malware Scanner de cPanel o usa plugins de seguridad.
¿Cómo evito el error 500 en el futuro?
- Mantén PrestaShop, módulos y temas actualizados.
- Haz copias de seguridad antes de cualquier cambio.
- Usa un hosting con recursos suficientes (memoria, CPU).
- Configura un límite de memoria PHP adecuado (256 MB o más).
¿Qué hago si no puedo acceder al back office ni a FTP?
Pide a tu proveedor de hosting que active el modo debug o te proporcione los logs de errores. También puedes pedirles que restablezcan permisos o desactiven módulos desde su lado.
Resumen
El error 500 PrestaShop es frustrante, pero casi siempre tiene solución. Sigue estos pasos en orden:
- Activa el modo debug de PrestaShop.
- Revisa los logs del servidor (cPanel, Plesk, DirectAdmin o Syspanel).
- Aumenta el límite de memoria PHP.
- Repara el .htaccess.
- Desactiva módulos o temas conflictivos.
- Verifica permisos de archivos.
- Si nada funciona, contacta a tu soporte de hosting.
Recuerda que Syspanel (antes HestiaCP) se accede por el puerto 2106, y en todos los paneles puedes encontrar herramientas similares para gestionar logs, PHP y archivos.
[TIP] Si después de todo el error persiste, no dudes en pedir ayuda a tu proveedor de hosting. Ellos tienen acceso directo a los logs del servidor y pueden identificar el problema rápidamente.
¡Espero que esta guía te haya ayudado a solucionar error 500 en tu PrestaShop! Compártela con otros usuarios que puedan estar pasando por lo mismo.
