Cómo solucionar error 500 en PrestaShop con cPanel
¿Te has encontrado con la temida pantalla en blanco o el mensaje "Error 500 – Error interno del servidor" en tu tienda PrestaShop? No te preocupes, es uno de los problemas más comunes y, por suerte, casi siempre tiene solución. En esta guía extensa y paso a paso, te voy a explicar cómo diagnosticar y solucionar el error 500 en PrestaShop usando las herramientas que te ofrece cPanel. Vamos a ir desde lo más básico hasta soluciones más avanzadas, siempre con un lenguaje claro y ejemplos prácticos.
¿Qué es exactamente un error 500 en PrestaShop?
Antes de lanzarnos a arreglarlo, es importante entender qué significa. Un error interno del servidor (código 500) es una respuesta genérica que indica que algo falló en el servidor web, pero sin dar detalles específicos. En PrestaShop, esto suele deberse a:
- Un archivo
.htaccesscorrupto o mal configurado. - Un módulo o tema incompatible después de una actualización.
- Límites de memoria PHP excedidos (memory_limit).
- Permisos de archivos incorrectos.
- Un error en el archivo
config/defines.inc.php(modo debug desactivado). - Problemas con la base de datos o con archivos esenciales de PrestaShop.
Lo bueno es que, con cPanel, tenemos acceso directo a los archivos del servidor y a herramientas de diagnóstico. Vamos a ello.
Paso 1: Activar el modo debug de PrestaShop (la clave para ver el error real)
El error 500 es una caja negra. Para abrirla, lo primero es activar el modo debug de PrestaShop. Esto hará que en lugar de la pantalla en blanco, veas un mensaje con el error real (por ejemplo, "Fatal error: Allowed memory size...").
¿Cómo hago esto desde cPanel?
- Accede a cPanel (normalmente en
tudominio.com/cpanelotudominio.com:2083). - Busca la sección Archivos y haz clic en Administrador de archivos.
- Navega hasta la carpeta raíz de tu PrestaShop (suele ser
public_htmlo una subcarpeta comotienda). - Busca el archivo
config/defines.inc.phpy ábrelo con el editor de texto (clic derecho > Editar). - Busca la línea que dice:
define('_PS_MODE_DEV_', false);
y cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda los cambios y cierra el editor.
- Recarga tu tienda. Ahora, en lugar del error 500, verás un mensaje de error detallado.
[INFO] Si al activar el modo debug ves un error de sintaxis (parse error), anótalo. Te será muy útil para los pasos siguientes. Si no ves nada, vuelve a desactivarlo y sigue con el resto de pasos.
Paso 2: Solucionar el error 500 causado por el archivo .htaccess
Este es el culpable número 1. El archivo .htaccess de PrestaShop es muy sensible y puede corromperse fácilmente, sobre todo tras instalar módulos de SEO o redirecciones.
¿Cómo regenerar el .htaccess desde cPanel?
-
En el Administrador de archivos, asegúrate de tener activada la opción Mostrar archivos ocultos (en la esquina superior derecha).
-
Localiza el archivo
.htaccessen la raíz de tu PrestaShop. -
Haz clic derecho sobre él y selecciona Cambiar nombre. Ponle, por ejemplo,
_htaccess_backup.txt. Esto lo desactiva. -
Ahora, ve a tu Back Office de PrestaShop (si puedes acceder). Si no puedes, sigue el paso alternativo.
-
En el Back Office, ve a Configuración avanzada > Rendimiento y haz clic en Generar/regenerar el archivo .htaccess.
-
Si no puedes acceder al Back Office (porque el error 500 te bloquea), usa este método alternativo desde cPanel:
- Crea un archivo nuevo en la raíz llamado
nuevo_htaccess.txt. - Pégalo en el siguiente contenido básico de PrestaShop (ajusta la carpeta si tu tienda está en una subcarpeta):
# ~~start~~ No modificar este bloque <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^tudominio.com$ [NC] RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] RewriteRule ^upload/?(.*)$ %{ENV:REWRITEBASE}upload/$1 [QSA,L] RewriteRule ^(.*)$ %{ENV:REWRITEBASE}index.php [QSA,L] </IfModule> # ~~end~~- Guarda el archivo y luego cámbiale el nombre a
.htaccess(sin extensión .txt).
- Crea un archivo nuevo en la raíz llamado
[TIP] Si no sabes si tu tienda está en una subcarpeta, revisa la URL de acceso. Si es
tudominio.com/tienda, entonces en la línea de RewriteBase debes poner/tienda/.
Paso 3: Aumentar el límite de memoria PHP (memory_limit)
Otro clásico: tu tienda necesita más memoria de la que el servidor le asigna por defecto. Esto es muy común tras instalar módulos pesados o importar muchos productos.
¿Cómo aumentarlo desde cPanel?
-
En cPanel, busca la sección Software y haz clic en Seleccionar versión de PHP (o MultiPHP Manager).
-
Una vez dentro, busca la opción Opciones de PHP o Switch to PHP Options.
-
Localiza el parámetro
memory_limity cámbialo a un valor más alto. Recomendado:- 256M para tiendas pequeñas.
- 512M o más para tiendas grandes con muchos módulos.
-
Guarda los cambios y recarga la página.
-
Si no encuentras esta opción, puedes hacerlo manualmente editando el archivo
php.ini(si existe) o creando un archivouser.inien la raíz con el siguiente contenido:memory_limit = 256M max_execution_time = 180 max_input_time = 180 upload_max_filesize = 64M post_max_size = 64M
[WARNING] Si tu servidor usa Syspanel (HestiaCP) en lugar de cPanel, el proceso es similar pero accedes por el puerto 2106. Busca la sección de "PHP" y ajusta el memory_limit desde allí. No olvides reiniciar el servicio de Apache/Nginx después.
Paso 4: Verificar y corregir permisos de archivos
Los permisos incorrectos pueden provocar un error 500. PrestaShop necesita permisos específicos para funcionar.
¿Cómo comprobarlos desde cPanel?
- En el Administrador de archivos, selecciona todos los archivos de la raíz (Ctrl+A).
- Haz clic derecho y elige Cambiar permisos.
- Aplica los siguientes valores:
- Carpetas (directorios): 755
- Archivos: 644
- Especial atención a los siguientes archivos/carpetas:
config/defines.inc.php→ 644config/settings.inc.php→ 644 (si existe)cache/,log/,upload/,img/,themes/→ 755
- Marca la opción Recursivo para que se aplique a todas las subcarpetas y archivos.
[TIP] No pongas permisos 777 nunca, es un agujero de seguridad. Si algún módulo te lo pide, busca una alternativa más segura.
Paso 5: Deshabilitar módulos o temas problemáticos (sin acceso al Back Office)
Si el error 500 apareció justo después de instalar o actualizar un módulo, ese es el sospechoso. Pero si no puedes entrar al Back Office, ¿cómo lo desactivas?
Solución desde cPanel (vía FTP o administrador de archivos)
- Ve a la carpeta
/modules/de tu PrestaShop. - Localiza la carpeta del módulo problemático (por ejemplo,
supermoduloraro). - Cambia el nombre de la carpeta añadiendo un guion bajo al inicio:
_supermoduloraro. Esto lo desactiva automáticamente. - Si no sabes cuál es el módulo conflictivo, renombra todos los módulos añadiendo
_al inicio de cada carpeta (exceptoautoupgradeyps_mainmenu). Luego ve renombrándolos de uno en uno para identificar al culpable. - Si el problema es el tema, ve a la carpeta
/themes/y renombra la carpeta de tu tema activo (por ejemplo,micompletema→_micompletema). PrestaShop usará el tema por defecto (Classic).
[INFO] Al renombrar la carpeta del tema, perderás la personalización visual, pero podrás acceder al Back Office y desinstalar el tema problemático.
Paso 6: Revisar el archivo settings.inc.php (conexión a la base de datos)
Un error en los datos de conexión a la base de datos también puede provocar un error 500. Esto sucede si cambiaste la contraseña de MySQL o si migraste el sitio.
¿Cómo verificarlo desde cPanel?
- En el Administrador de archivos, abre
config/settings.inc.php. - Busca las líneas:
define('_DB_SERVER_', 'localhost'); define('_DB_NAME_', 'nombre_base_datos'); define('_DB_USER_', 'usuario_base_datos'); define('_DB_PASSWD_', 'contraseña'); - Comprueba que los datos coincidan con los de tu base de datos en cPanel (puedes verlos en Bases de datos MySQL).
- Si no estás seguro, desde cPanel ve a Bases de datos MySQL, crea un usuario nuevo y asigna los permisos, luego actualiza el archivo
settings.inc.phpcon esos datos.
[WARNING] Si usas Syspanel (HestiaCP), el acceso a la base de datos se hace desde el panel en el puerto 2106. Busca la sección "Bases de datos" y verifica las credenciales.
Paso 7: Forzar la regeneración de la caché de PrestaShop
A veces la caché de PrestaShop se corrompe y causa el error 500. Forzar su limpieza desde cPanel es muy sencillo.
- En el Administrador de archivos, navega a
/var/cache/(o/cache/en versiones antiguas). - Elimina todo el contenido de las carpetas
cache/,smarty/compile/ysmarty/cache/(no las carpetas en sí, solo su interior). - Si no puedes eliminar archivos, cambia los permisos de la carpeta
cachea 755 y luego inténtalo de nuevo. - Recarga tu tienda.
[TIP] Si después de limpiar la caché el error persiste, prueba a desactivar la caché desde el archivo
config/defines.inc.phpbuscando la líneadefine('_PS_CACHE_ENABLED_', '1');y cámbiala a'0'.
Paso 8: Revisar los logs del servidor (la última palabra)
Si después de todo lo anterior el error 500 sigue apareciendo, toca mirar los logs del servidor. Aquí es donde se registran los errores reales.
¿Cómo acceder a los logs desde cPanel?
- En cPanel, busca la sección Métricas y haz clic en Errores o Error Log.
- Busca las entradas más recientes que coincidan con la hora del error. Suelen tener el formato:
[Sun Jan 21 10:00:00.123456 2025] [php:error] [pid 12345] [client IP] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/.../config/defines.inc.php on line 50 - Anota el error exacto. Si dice "memory size", ya sabes qué hacer (paso 3). Si dice "syntax error", revisa el archivo mencionado.
- Si no ves logs en cPanel, puedes descargarlos desde Raw Access Logs o, en Syspanel (HestiaCP), accede a la sección "Logs" en el puerto 2106.
[INFO] Los logs son tu mejor amigo. Si el error menciona un archivo específico (por ejemplo,
modules/supermodulo/supermodulo.php), ya sabes dónde mirar.
Preguntas frecuentes (FAQ)
¿Por qué aparece el error 500 después de una actualización de PrestaShop?
Las actualizaciones pueden cambiar la estructura de archivos o requerir versiones más recientes de PHP. Verifica que tu versión de PHP (en cPanel, sección Seleccionar versión de PHP) sea compatible con la versión de PrestaShop que tienes.
¿El error 500 puede deberse a un plugin de SEO?
Sí, especialmente si el plugin modifica el .htaccess o añade reglas de redirección. Prueba a desactivar el plugin renombrando su carpeta en /modules/.
¿Qué hago si no tengo acceso a cPanel?
Si tu hosting no incluye cPanel, contacta con tu proveedor. Algunos ofrecen paneles alternativos como Syspanel (HestiaCP), que se accede por el puerto 2106. Los pasos son similares, pero la interfaz puede variar.
¿Puedo perder datos al solucionar el error 500?
No, a menos que borres archivos importantes. Siempre haz una copia de seguridad antes de modificar archivos. Desde cPanel puedes usar la herramienta Copias de seguridad para descargar un backup completo.
¿Y si nada funciona?
Si has seguido todos los pasos y el error persiste, el problema puede estar en el servidor (configuración de Apache, PHP, o incluso un firewall). En ese caso, contacta al soporte técnico de tu hosting y muéstrales los logs del servidor que obtuviste en el paso 8.
Resumen rápido
Para solucionar el error 500 en PrestaShop con cPanel, sigue este orden:
- Activa el modo debug para ver el error real.
- Regenera el .htaccess (desactívalo temporalmente).
- Aumenta el memory_limit de PHP a 256M o más.
- Corrige permisos de archivos (755 carpetas, 644 archivos).
- Desactiva módulos/temas renombrando sus carpetas.
- Verifica la conexión a la base de datos en
settings.inc.php. - Limpia la caché de PrestaShop.
- Revisa los logs del servidor para pistas finales.
Con paciencia y estos pasos, tu tienda volverá a funcionar. ¡Ánimo, que el error 500 tiene solución!
