Cómo solucionar el error 500 en PrestaShop (hosting cPanel)
¿Qué es exactamente el error 500 en PrestaShop y por qué aparece?
Si estás leyendo esto, es muy probable que hayas intentado entrar a tu tienda online y te hayas encontrado con una pantalla en blanco o el temido mensaje "Error 500 Internal Server Error". Tranquilo, no eres el único y, sobre todo, tiene solución. Este error es uno de los más comunes en el mundo del hosting y, aunque parece muy grave, en la mayoría de los casos es solo un problema de configuración o de permisos que podemos arreglar siguiendo unos pasos lógicos.
El error 500 es un error genérico del servidor. Es decir, el servidor sabe que algo falla, pero no te dice exactamente qué es. Por eso, para solucionar error 500 cPanel, lo primero que debemos hacer es convertir ese mensaje genérico en un mensaje específico. Para ello, necesitamos acceder a los logs error PrestaShop, que son como el "diario de a bordo" del servidor donde se registran todos los fallos.
Antes de empezar a tocar nada, respira hondo. No vamos a romper nada más de lo que ya está. Vamos a ir paso a paso, desde lo más sencillo (y menos invasivo) hasta lo más complejo. Este artículo está pensado para que, incluso sin ser un experto en informática, puedas arreglar web caída siguiendo las instrucciones.
Primeros pasos: La regla de oro antes de tocar nada
Antes de lanzarnos a modificar archivos, hay una regla de oro en el soporte técnico: hacer una copia de seguridad. Si tu tienda está caída, lo último que quieres es perder datos o romper algo más. La mayoría de los paneles de control como cPanel o Syspanel (recuerda, el antiguo HestiaCP, que se accede por el puerto 2106) tienen herramientas de copia de seguridad integradas.
Si no puedes acceder al panel de control porque el servidor está muy saturado, al menos descarga una copia de los archivos de tu tienda por FTP (FileZilla, por ejemplo) y una copia de la base de datos desde phpMyAdmin. Es un poco tedioso, pero te dará una red de seguridad enorme.
Una vez que tengas tu copia de seguridad, vamos a empezar con el diagnóstico. El objetivo es encontrar la causa raíz, no solo tapar el síntoma.
Paso 1: Activar el modo debug de PrestaShop para ver el error real
PrestaShop, como la mayoría de los CMS (sistemas de gestión de contenidos), tiene un "modo de depuración" o "debug". Este modo obliga a la tienda a mostrar el error específico en pantalla en lugar del genérico "Error 500". Es la forma más rápida de saber si el problema es de código, de base de datos o de memoria.
Para activarlo, tienes que editar un archivo llamado defines.inc.php. No te asustes, es más fácil de lo que parece.
¿Cómo editar el archivo defines.inc.php?
- Conéctate a tu hosting por FTP (FileZilla) o usa el Administrador de Archivos de cPanel o Syspanel.
- Navega hasta la carpeta
configde tu instalación de PrestaShop. La ruta suele serpublic_html/config/owww/tu-tienda/config/. - Busca el archivo
defines.inc.php. - Ábrelo con un editor de texto plano (nunca con Word o similar). Puedes usar el editor integrado de cPanel o el Bloc de Notas de tu ordenador.
- Busca la línea que dice
define('_PS_MODE_DEV_', false);(o similar). - Cambia
falseportrue. La línea debe quedar así:define('_PS_MODE_DEV_', true);. - Guarda el archivo y súbelo de nuevo al servidor (si lo editaste localmente).
Ahora, recarga tu tienda. En lugar del error 500, verás un mensaje largo con detalles técnicos. Anota ese mensaje. Será nuestra hoja de ruta. Si el error es muy feo o no entiendes nada, no pasa nada, este paso nos sirve para saber si el problema es de memoria, de una clase concreta o de la base de datos.
[WARNING] Recuerda que, una vez solucionado el problema, debes volver a poner
falseen el archivodefines.inc.phppara que los clientes no vean esos mensajes técnicos. Dejarlo activado es un riesgo de seguridad.
Paso 2: Revisar los logs del servidor (cPanel y Syspanel)
Si el modo debug no te da una pista clara, o si prefieres ir directo al grano, los logs error PrestaShop son tu mejor amigo. Estos registros son archivos de texto donde el servidor apunta todo lo que falla.
Acceso a los logs en cPanel
En cPanel, busca la sección "Métricas" o "Registros". Hay una herramienta llamada "Errores" o "Error Log". Haz clic y verás una lista de los últimos errores. Busca los que tengan fecha y hora de cuando empezó el problema. Generalmente, verás líneas como:
[Tue Jan 01 10:00:00 2025] [error] [client 192.168.1.1] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted...
Ese mensaje es oro puro. Nos dice que el servidor se quedó sin memoria PHP. Pero también puede decir Call to undefined function o Parse error.
Acceso a los logs en Syspanel (HestiaCP)
Si tu hosting usa Syspanel (el antiguo HestiaCP), el acceso es igual de sencillo. Recuerda que el puerto de acceso es el 2106. Una vez dentro, busca la sección de "Registros" o "Logs" asociada a tu dominio. La estructura es similar a cPanel, con una lista de errores cronológica. La ventaja de Syspanel es que a veces te muestra los logs directamente en la interfaz web, sin necesidad de descargar nada.
[INFO] Si no encuentras el log en el panel, puedes acceder por FTP. Busca una carpeta llamada
logsologen la raíz de tu cuenta. En cPanel, a veces está fuera depublic_html, en una carpeta comologsohome/usuario/logs.
Paso 3: El culpable más común: La memoria PHP (memory_limit)
El error de memoria es el más habitual en tiendas PrestaShop, sobre todo si has instalado muchos módulos o si tu catálogo es muy grande. PrestaShop es un CMS que "come" bastante memoria, y si el límite del servidor es bajo, se cae.
¿Cómo aumentar el límite de memoria?
Tienes dos opciones: desde el panel de control o editando un archivo.
Opción A: Desde cPanel o Syspanel
- En cPanel, busca la sección "Software" y luego "Select PHP Version" o "MultiPHP INI Editor".
- Haz clic en "MultiPHP INI Editor".
- Selecciona tu dominio de la lista.
- Busca la opción
memory_limit. - Cambia el valor a
256Mo incluso512M(no te pases, con 256M suele ser suficiente para la mayoría). - Haz clic en "Apply" o "Guardar".
En Syspanel, el proceso es muy similar. Busca la sección de "PHP" o "Configuración de PHP" dentro de tu dominio. Allí podrás editar el memory_limit directamente.
Opción B: Editando el archivo .htaccess
Si no encuentras la opción en el panel, puedes añadir una línea al archivo .htaccess que está en la raíz de tu tienda (en public_html).
- Conecta por FTP y busca el archivo
.htaccess. - Descárgalo y haz una copia de seguridad antes de tocarlo.
- Ábrelo con un editor de texto.
- Añade esta línea al principio del archivo (después de
RewriteEngine On):
php_value memory_limit 256M
- Guarda y sube el archivo.
[WARNING] Si tu hosting usa PHP-FPM (lo más probable), esta directiva en
.htaccesspuede no funcionar. En ese caso, es obligatorio usar el panel de control. Si la línea da error, elimínala inmediatamente.
Paso 4: Permisos de archivos y carpetas incorrectos
Otra causa muy común del error 500 PrestaShop son los permisos de archivos. Si algún archivo o carpeta tiene permisos demasiado restrictivos, el servidor no puede leerlos y se cae. Por el contrario, si son demasiado permisivos, es un riesgo de seguridad.
La configuración estándar para PrestaShop es:
- Carpetas: 755
- Archivos: 644
¿Cómo corregir los permisos?
- Conecta por FTP (FileZilla).
- Selecciona la carpeta raíz de tu tienda (por ejemplo,
public_html). - Haz clic derecho y selecciona "Permisos de archivos...".
- Para las carpetas, introduce
755y asegúrate de que esté marcado "Aplicar a las subcarpetas". - Para los archivos, el proceso es similar pero con
644.
[TIP] FileZilla tiene una opción para "Aplicar a los archivos" y "Aplicar a las carpetas". Hazlo por separado para no liarte. Este paso es tedioso pero muy efectivo, ya que a veces una actualización de módulo cambia los permisos sin querer.
Paso 5: Archivos .htaccess corruptos o caché residual
El archivo .htaccess es el "administrador" de la configuración del servidor para tu dominio. Si está corrupto o tiene una directiva incorrecta, puede provocar un error 500. A veces, una actualización fallida de PrestaShop deja este archivo a medias.
Solución rápida: Regenerar el .htaccess
PrestaShop puede regenerar este archivo automáticamente, pero si la tienda está caída, no podemos acceder al panel de administración. Así que lo haremos a mano.
- Conecta por FTP y localiza el archivo
.htaccessen la raíz. - Descárgalo como copia de seguridad.
- Bórralo del servidor.
- Intenta acceder a tu tienda. Verás otro error, pero no te preocupes, es normal.
- Ahora, entra a tu panel de administración de PrestaShop (normalmente en
/admino la carpeta que hayas configurado). La URL seríatudominio.com/admin. - Ve a Parámetros Avanzados > Rendimiento.
- Haz clic en el botón "Regenerar .htaccess" o similar.
Si no puedes acceder al panel de administración, puedes crear un archivo .htaccess básico desde cero. Pero esto es más complejo, así que te recomiendo probar primero con el panel.
Otra opción es limpiar la caché de PrestaShop. Puedes hacerlo borrando el contenido de la carpeta var/cache (en versiones antiguas era cache). No borres la carpeta en sí, solo su contenido.
Paso 6: Problemas con la base de datos
A veces, el error 500 no es por los archivos, sino por la base de datos. Si hay una tabla corrupta o una conexión fallida, la tienda no puede cargar.
Verificar la conexión a la base de datos
- Accede a tu panel de control (cPanel o Syspanel).
- Busca "Base de Datos MySQL" o "phpMyAdmin".
- Entra en phpMyAdmin y selecciona tu base de datos (la que uses para PrestaShop).
- En la pestaña "Exportar", haz una copia de seguridad de toda la base de datos. Es vital.
- Ahora, en la pestaña "SQL", ejecuta esta consulta para comprobar que todo está bien:
CHECK TABLE ps_connections;
Si te da un error, es que hay una tabla dañada. Puedes intentar repararla con:
REPAIR TABLE ps_connections;
[INFO] El prefijo
ps_es el predeterminado de PrestaShop, pero puede ser diferente en tu instalación (por ejemplo,shop_). Asegúrate de usar el prefijo correcto.
Paso 7: Módulos conflictivos o tema desactualizado
Si has instalado un módulo recientemente y la tienda se ha caído, es muy probable que el módulo sea el culpable. A veces, los módulos no son compatibles con la versión de PHP o de PrestaShop que tienes.
¿Cómo desactivar un módulo problemático si no puedes acceder al panel?
Esta es la parte más delicada. No podemos entrar al panel de administración para desactivarlo, así que lo haremos desde la base de datos.
- Entra en phpMyAdmin.
- Selecciona tu base de datos de PrestaShop.
- Busca la tabla
ps_module(o tu prefijo). - Haz clic en "Buscar" y busca el nombre del módulo que crees que es el problema.
- Una vez localizado, edita la fila y cambia el valor de
activede1a0. - Guarda los cambios.
Esto desactivará el módulo sin necesidad de entrar al panel. Si la tienda vuelve a funcionar, ya sabes cuál es el problema.
Paso 8: Versión de PHP incompatible
PrestaShop es muy sensible a la versión de PHP. Si tu hosting ha actualizado la versión de PHP automáticamente y tu tienda es antigua, es probable que el error 500 aparezca.
Cambiar la versión de PHP desde cPanel o Syspanel
- En cPanel, busca "Select PHP Version".
- Verás una lista de versiones (5.6, 7.0, 7.4, 8.0, 8.1...).
- Prueba con una versión anterior a la que tienes. Si estabas en 8.0, prueba con 7.4.
- Guarda los cambios y recarga la tienda.
En Syspanel, el proceso es idéntico, pero recuerda que el acceso es por el puerto 2106. Busca la sección de "PHP" de tu dominio y ahí podrás cambiar la versión.
[WARNING] No uses versiones de PHP demasiado antiguas (como 5.6) porque tienen vulnerabilidades de seguridad graves. Busca un equilibrio entre compatibilidad y seguridad. La versión 7.4 es un buen punto medio para tiendas antiguas.
Resumen y preguntas frecuentes (FAQ)
Hemos cubierto los pasos principales para solucionar error 500 cPanel en PrestaShop. Es un proceso de eliminación, así que la paciencia es clave.
Preguntas frecuentes
¿Por qué sigo viendo el error 500 después de seguir todos los pasos?
Puede que el problema sea más profundo, como un conflicto con el servidor a nivel de red o un problema de permisos en la carpeta var/cache. Te recomiendo revisar de nuevo los logs del servidor, ya que te darán la pista definitiva. Si el log dice Permission denied, es un problema de permisos en una carpeta específica.
¿Puedo perder mis pedidos o clientes si la tienda está caída?
Los datos no se pierden, ya que están en la base de datos. Lo que sí pierdes son las ventas durante el tiempo que la tienda está inactiva. Por eso es tan importante actuar rápido.
¿Cuánto tiempo se tarda en arreglar este error?
Depende de la causa. Si es un problema de memoria, en 10 minutos está solucionado. Si es un módulo conflictivo, puede llevarte un poco más de tiempo investigar cuál es.
¿Debo contactar con mi proveedor de hosting?
Si has llegado hasta aquí y el error persiste, es hora de contactar con el soporte técnico de tu hosting. Ellos tienen acceso a los logs del servidor a un nivel más profundo y pueden ver si hay un problema de hardware o de configuración global. Diles que ya has comprobado la memoria, los permisos y el .htaccess para que no te hagan repetir los pasos.
¿Qué es el puerto 2106 de Syspanel?
Es el puerto de acceso al panel de control **Syspanel
