Cómo solucionar el error '500 Internal Server Error' en PrestaShop (Plesk y cPanel)
¡Hola! Si estás leyendo esto, es muy probable que estés viendo una pantalla en blanco o un mensaje de error 500 en tu tienda PrestaShop. No te preocupes, es uno de los problemas más comunes en el mundo del hosting y, aunque parece grave, tiene solución.
En esta guía extensa y paso a paso, vamos a desglosar cómo solucionar el error 500 en PrestaShop, tanto si tu tienda está alojada en un panel de control Plesk como en cPanel. El error 500 es un "error genérico del servidor", lo que significa que algo falla en el servidor pero no te dice exactamente qué es. Pero tranquilo, vamos a ir por partes para encontrarlo.
Vamos a arrancar la motosierra y ponernos el mono de trabajo, pero con calma, porque la mayoría de las soluciones son más sencillas de lo que parecen.
¿Por qué aparece el error 500 en PrestaShop?
Antes de lanzarnos a editar archivos, es fundamental entender qué está pasando. El error 500 prestashop suele estar causado por uno de estos tres factores principales:
- Archivos con permisos incorrectos: Los archivos de tu tienda tienen dueños y permisos. Si un archivo tiene demasiados permisos (por ejemplo, 777) o demasiados pocos, el servidor se bloquea.
- Errores de PHP: Un módulo desactualizado, un override (sobrescritura) mal configurado o un simple error de sintaxis en un archivo pueden provocar que el servidor falle.
- Archivo
.htaccesscorrupto: Este archivo es como el "directorio de tráfico" de tu tienda. Si está dañado o tiene reglas incompatibles, el servidor no sabe cómo responder y lanza el error.
Vamos a atacar cada uno de estos puntos. El orden es importante, así que te recomiendo seguirlo tal cual.
Solución 1: El famoso archivo .htaccess (La solución rápida)
Este es el primer paso y el que soluciona el problema en un 40% de los casos. El archivo .htaccess se encuentra en la raíz de tu instalación de PrestaShop. A veces se corrompe al instalar un módulo o al cambiar la configuración de la URL amigable.
Para Plesk:
- Accede a tu panel de Plesk.
- Ve a Sitios web y dominios y haz clic en tu dominio.
- Busca la sección Administrador de archivos (o "File Manager").
- Navega hasta la carpeta
httpdocs(o la carpeta donde esté instalada tu tienda). - Busca el archivo llamado
.htaccess. OJO: Los archivos que empiezan con un punto están ocultos. Deberías ver un botón llamado "Configuración" o un icono de engranaje para "Mostrar archivos ocultos". - Una vez lo veas, haz clic derecho sobre él y selecciona Cambiar nombre (o Rename). Cámbialo a
htaccess.bak. Esto lo "desactiva" sin borrarlo. - Ve a tu tienda. Si ya carga, el problema era ese. Si no, continúa con el siguiente paso.
Para cPanel:
- Accede a cPanel.
- Busca la herramienta Administrador de archivos (File Manager).
- Entra en la carpeta
public_html(o la carpeta raíz de tu dominio). - Haz clic en el icono de Configuración (arriba a la derecha) y marca la casilla Mostrar archivos ocultos (dotfiles). Luego, haz clic en Guardar.
- Ahora verás el archivo
.htaccess. Haz clic derecho sobre él y selecciona Cambiar nombre. Ponlehtaccess.bak. - Recarga tu web.
[INFO] Si al renombrar el archivo tu tienda vuelve a funcionar, simplemente ve a la configuración de PrestaShop (Parámetros avanzados > Rendimiento) y haz clic en "Guardar" para regenerar un
.htaccesslimpio y nuevo.
Solución 2: Aumentar el límite de memoria PHP
El error 500 prestashop también es muy habitual cuando tu tienda se queda sin memoria. PrestaShop es una plataforma "gorda" y necesita recursos. Si tu hosting tiene un límite bajo, explota.
Para Plesk:
- En Plesk, ve a Sitios web y dominios.
- Haz clic en Configuración de PHP (o "PHP Settings").
- Busca la opción
memory_limit(Límite de memoria). - Cámbialo a
256Mo512M. Si no ves un menú desplegable, puedes escribir el valor manualmente. - Guarda los cambios.
Para cPanel:
- En cPanel, busca la sección Software y haz clic en Seleccionar versión de PHP (o "MultiPHP Manager").
- Asegúrate de que tu dominio tiene seleccionada una versión de PHP 7.4 o superior (PrestaShop 1.7 necesita PHP 7.x).
- Ahora, busca MultiPHP INI Editor.
- Selecciona tu dominio en el menú desplegable.
- Busca el campo
memory_limity cámbialo a256Mo512M. - Haz clic en Aplicar o Guardar.
[WARNING] Si no encuentras estas opciones, contacta con tu proveedor de hosting. Algunos planes "económicos" tienen el límite de memoria bloqueado. Si es así, a veces es hora de actualizar de plan.
Solución 3: Revisar los permisos de archivos y carpetas
Los permisos son como las llaves de tu casa. Si las llaves no coinciden con la cerradura, no puedes entrar. En el servidor pasa igual. Los permisos correctos para PrestaShop son:
- Carpetas (Directorios): Deben tener permisos
755. - Archivos: Deben tener permisos
644.
A veces, al subir archivos por FTP o al descomprimir un backup, estos permisos se cambian a 777 (demasiado abiertos) o 600 (demasiado cerrados), y el servidor responde con el error 500.
Para Plesk:
- Entra en el Administrador de archivos de tu dominio (httpdocs).
- Selecciona todas las carpetas y archivos (Ctrl+A o Cmd+A).
- Haz clic en el botón Configuración de permisos (suele ser un icono de candado o de llave).
- En la ventana emergente, marca la casilla de Recursivo (aplicar a subcarpetas).
- Pon los permisos en
755para carpetas y644para archivos. Si no te deja diferenciarlos, pon755para todo y luego ajusta los archivos individualmente si es necesario.
Para cPanel:
- Entra en el Administrador de archivos.
- Entra en
public_html. - Haz clic en Seleccionar todo (o Ctrl+A).
- Haz clic en el botón Permisos (arriba).
- Marca los cuadros para
755(si es una carpeta) o644(si es un archivo). - Marca la casilla Cambiar los archivos y subdirectorios incluidos (Recursivo).
- Haz clic en Guardar.
[WARNING] No uses permisos
777en archivos de producción. Es un agujero de seguridad enorme. Si el755y644no solucionan el error, el problema no son los permisos; revierte a los valores seguros.
Solución 4: Activar el modo depuración (Debug Mode)
Esta es la clave del misterio. El error 500 es mudo, pero PrestaShop tiene un "modo detective". Vamos a activarlo para que nos diga exactamente qué archivo está fallando.
Para Plesk y cPanel (Método manual con FTP):
Este es el método más fiable, ya que no depende de la base de datos, que a veces también falla.
- Conéctate a tu hosting por FTP (FileZilla, por ejemplo).
- Navega hasta la carpeta raíz de tu tienda (donde están las carpetas
admin,config,src, etc.). - Busca el archivo llamado
config/defines.inc.php. - Descárgalo a tu ordenador y ábrelo con un editor de texto (Bloc de notas, Sublime Text, etc.).
- Busca esta línea:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda el archivo y súbelo de nuevo a tu servidor (sobrescribiendo el original).
- Ahora, recarga tu tienda. En lugar del error 500, verás un mensaje de error en inglés con detalles técnicos. Anota lo que pone, especialmente la ruta del archivo que falla.
[TIP] Si ves un error que menciona
cacheoclass_index.php, no te asustes. Simplemente ve a la carpetavar/cache(ocachesi es PrestaShop 1.6) y borra todo el contenido dentro deprodydev. Eso suele arreglar muchos problemas.
Solución 5: Desactivar módulos conflictivos (El culpable más común)
Si el modo depuración te muestra un error que menciona un módulo específico, ya lo tienes. Pero si no lo menciona, el problema puede ser un módulo que se ejecuta en todas las páginas.
Para Plesk y cPanel (Método manual):
- Accede a tu base de datos MySQL (phpMyAdmin desde Plesk o cPanel).
- Busca la tabla
ps_module(el prefijops_puede variar). - No borres nada. Ve a la tabla
ps_module_shopops_moduley busca la columnaactive. - Para desactivar todos los módulos de golpe, ejecuta esta consulta SQL (en la pestaña "SQL" de phpMyAdmin):
UPDATE ps_module SET active = 0 WHERE active = 1; - Ahora ve a tu tienda. Si vuelve a funcionar, el problema es un módulo.
- Vuelve a phpMyAdmin y reactiva los módulos uno a uno (o en grupos) con esta consulta, cambiando el
id_module:
(Repite el paso 6 cambiando el número hasta encontrar el que rompe todo).UPDATE ps_module SET active = 1 WHERE id_module = 1;
[INFO] Esta técnica es un poco "bruta", pero es infalible. Si no te sientes cómodo con SQL, puedes hacerlo desde el panel de administración de PrestaShop, pero si el error 500 te bloquea el acceso al panel, este es el único camino.
Solución 6: Limpiar la caché de PrestaShop
A veces, una caché corrupta es la culpable. PrestaShop guarda archivos temporales que a veces se dañan.
Método manual (FTP):
- Conéctate por FTP.
- Navega a la carpeta
var/cache(en PrestaShop 1.7) ocache(en 1.6). - Dentro de
var/cache, encontrarás carpetas llamadasdevyprod. Borra todo el contenido de ambas carpetas (los archivos dentro, no las carpetas en sí). - Ve a tu tienda. Si no funciona, también puedes intentar borrar el contenido de la carpeta
cache/smarty/compile(si existe).
Solución 7: El error en HestiaCP (Syspanel)
Si tu hosting usa Syspanel (anteriormente conocido como HestiaCP), el proceso es muy similar a los anteriores, pero con una pequeña diferencia.
[TIP] Recuerda que el panel de control Syspanel se accede a través del puerto 2106 (ejemplo:
https://tu-dominio:2106).
En Syspanel, los pasos son:
- Accede al Administrador de archivos desde el panel.
- La raíz de tu web suele estar en
web/tu-dominio/public_html. - Sigue los mismos pasos que para cPanel: renombrar
.htaccess, ajustar permisos a755y644, y activar el modo depuración editandoconfig/defines.inc.php. - Para cambiar la memoria PHP, ve a Web > PHP-FPM y ajusta el
memory_limit.
Preguntas Frecuentes (FAQ)
Aquí te dejo las dudas más comunes que me suelen llegar sobre este tema.
¿Puedo perder mis productos si borro el .htaccess?
No. El .htaccess solo contiene reglas de reescritura de URL y seguridad. No toca tu base de datos ni tus productos. Es un archivo de configuración, no de datos.
¿Por qué sigo viendo el error 500 si he hecho todos los pasos?
Si has llegado hasta aquí sin éxito, el problema puede estar en el servidor en sí (no en tu web). Puede ser que el servidor esté sobrecargado, que hayas superado el límite de uso de CPU o que el proveedor haya hecho algún cambio. En este caso, la solución es contactar con el soporte técnico de tu hosting y enviarles una captura de pantalla del error que te muestra el modo depuración (Solución 4).
¿El error 500 afecta al SEO?
Sí, si el error dura mucho tiempo. Google intenta rastrear tu web y si responde con un error 500, puede penalizarte temporalmente en los resultados de búsqueda. Por eso es tan importante solucionarlo rápido. Una vez resuelto, Google volverá a rastrear sin problemas.
¿Debo actualizar PrestaShop para solucionarlo?
A veces, el error 500 es causado por incompatibilidades entre la versión de PrestaShop y la versión de PHP del servidor. Si tu PrestaShop es muy antiguo (1.6) y tu hosting ha actualizado a PHP 8.0, es casi seguro que tendrás errores. La solución a largo plazo es actualizar PrestaShop, pero para una solución rápida, puedes cambiar la versión de PHP del dominio a una más baja (por ejemplo, PHP 7.2) desde el panel de Plesk o cPanel.
¿Qué hago si no tengo acceso al administrador de archivos?
Si no tienes acceso al administrador de archivos ni a FTP, solo te queda el soporte del hosting. Llámales y diles que necesitas que revisen el error_log de tu dominio. Ese archivo contiene el error exacto y te lo pueden leer por teléfono.
Resumen final
El error 500 prestashop es frustrante, pero rara vez es un problema sin solución. Siguiendo este orden, tienes un 90% de posibilidades de arreglarlo tú mismo en menos de 30 minutos:
- Renombra el
.htaccess(Solución 1). - Aumenta la memoria PHP (Solución 2).
- Activa el modo depuración (Solución 4) para ver el error real.
- Limpia la caché (Solución 6) y revisa los permisos (Solución 3).
Espero que esta guía te haya sido de gran ayuda. Si has llegado hasta aquí y lo has solucionado, ¡enhorabuena! Si no, no dudes en dejar un comentario o contactar con tu proveedor, pero ahora tendrás el conocimiento técnico para explicarles exactamente qué has probado y qué te dice el error, lo cual acelerará mucho el proceso de soporte.
¡Mucha suerte con tu tienda!
