Cómo solucionar error 500 Internal Server Error en PrestaShop
¿Qué es el error 500 Internal Server Error en PrestaShop y por qué aparece?
Si tienes una tienda online con PrestaShop, es muy probable que en algún momento te hayas encontrado con la temida pantalla blanca o el mensaje "500 Internal Server Error". Este error es uno de los más comunes y, a la vez, uno de los que más sustos causa, porque parece que tu tienda ha muerto por completo.
La buena noticia es que, en la mayoría de los casos, solucionar error 500 en PrestaShop no requiere ser un experto en programación. Solo necesitas paciencia, seguir un orden lógico de revisión y entender qué está pasando en tu servidor.
El error 500 es un mensaje genérico que indica que algo salió mal en el servidor, pero no especifica qué. Es como si tu coche se encendiera el testigo de "avería" sin decirte si es el motor, la batería o una rueda. Por eso, vamos a ir paso a paso para diagnosticar y arreglar el problema.
Paso 1: Lo primero, haz una copia de seguridad (sí, antes de tocar nada)
Antes de empezar cualquier manipulación, haz una copia de seguridad de tu base de datos y de los archivos de tu tienda. Puedes hacerlo desde el panel de control de tu hosting o, si usas Syspanel, desde la sección de "Copias de seguridad". Recuerda que Syspanel se accede a través del puerto 2106 (por ejemplo: https://tu-dominio.com:2106).
[WARNING] Si no haces una copia de seguridad y algo sale mal durante el proceso, podrías perder configuraciones, productos o incluso toda tu tienda. No lo saltes.
Paso 2: Activa el modo debug de PrestaShop para ver el error real
El error 500 es genérico, pero PrestaShop tiene un modo de depuración que te muestra el error exacto. Para activarlo, tienes que editar el archivo config/defines.inc.php que está en la raíz de tu instalación.
-
Accede a tu hosting por FTP o desde el administrador de archivos de Syspanel.
-
Busca la carpeta
configy dentro el archivodefines.inc.php. -
Ábrelo con un editor de texto (como el Bloc de notas o Visual Studio Code).
-
Busca la línea que dice
define('_PS_MODE_DEV_', false); -
Cámbiala por
define('_PS_MODE_DEV_', true); -
Guarda el archivo y sube los cambios si lo estás haciendo por FTP.
-
Recarga tu tienda. Ahora, en lugar del error 500, verás un mensaje en rojo con la descripción del problema real (por ejemplo: "Table 'ps_products' doesn't exist" o un error de memoria).
[TIP] Anota el mensaje exacto que te aparece. Te servirá para saber si el problema es de base de datos, de permisos de archivos o de memoria PHP.
Paso 3: Revisa los permisos de archivos y carpetas
Un error 500 muy común en PrestaShop se debe a permisos incorrectos en archivos o carpetas. Si los permisos son demasiado restrictivos, el servidor no puede leer o escribir los archivos necesarios.
Los permisos correctos para PrestaShop son:
- Carpetas: 755
- Archivos: 644
- Carpeta
cacheylog: 755 (aunque a veces se recomienda 777 temporalmente)
Para cambiar los permisos, usa tu cliente FTP o el administrador de archivos de Syspanel. Selecciona todos los archivos y carpetas de la raíz de PrestaShop y ajusta los permisos según lo anterior.
[INFO] Si después de cambiar permisos a 755/644 el error persiste, prueba a poner la carpeta
cacheyloga 777. Luego, vuelve a intentarlo y, si funciona, revierte a 755 por seguridad.
Paso 4: Comprueba la memoria PHP (límite de memoria)
PrestaShop es una plataforma que consume bastante memoria PHP, especialmente si tienes muchos módulos o una tienda grande. Si el servidor tiene un límite de memoria bajo, es muy probable que aparezca el error 500.
Para aumentar el límite de memoria, tienes que editar el archivo php.ini. Si no sabes dónde está, puedes crearlo en la raíz de tu PrestaShop con el siguiente contenido:
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
[TIP] En Syspanel, puedes encontrar la configuración de PHP en "Ajustes de PHP" o "Configuración del servidor". Busca la opción de cambiar
memory_limity ponlo a 256M o incluso 512M si tu hosting lo permite.
Paso 5: Revisa el archivo .htaccess
El archivo .htaccess es un archivo de configuración muy importante en Apache. Si está dañado o tiene reglas incorrectas, puede provocar un error 500.
-
Conéctate por FTP y busca el archivo
.htaccessen la raíz de tu PrestaShop. -
Descárgalo y haz una copia de seguridad.
-
Bórralo del servidor.
-
Ve a tu panel de administración de PrestaShop (si puedes acceder) y ve a "Parámetros avanzados" > "Rendimiento".
-
Pulsa el botón "Regenerar .htaccess".
-
Si no puedes acceder al panel, crea un archivo
.htaccessvacío y súbelo. Luego intenta acceder a tu tienda.
[WARNING] Si borras el
.htaccessy tu tienda funciona, es que el archivo estaba corrupto. Regenerarlo desde el panel es la mejor opción.
Paso 6: Desactiva módulos conflictivos (modo seguro)
A veces, un módulo recién instalado o actualizado es el culpable del error 500. Para probarlo, puedes desactivar todos los módulos de golpe.
-
Accede a tu base de datos con phpMyAdmin (desde Syspanel o tu hosting).
-
Busca la tabla
ps_module(el prefijo puede variar, por ejemplo,ps_oprestashop_). -
Ejecuta el siguiente comando SQL:
UPDATE ps_module SET active = 0 WHERE active = 1;Esto desactivará todos los módulos.
-
Recarga tu tienda. Si funciona, el problema es de un módulo específico. Actívalos de uno en uno para encontrar al culpable.
[INFO] También puedes renombrar la carpeta
modulesen el servidor amodules_old. PrestaShop no encontrará los módulos y los desactivará automáticamente. Luego, ve renombrando los módulos de nuevo poco a poco.
Paso 7: Limpia la caché de PrestaShop y de Smarty
La caché de PrestaShop puede corromperse y provocar errores. Limpiarla es muy sencillo:
-
Conecta por FTP.
-
Entra en la carpeta
var/cache(en versiones nuevas) ocache(en versiones antiguas). -
Elimina todos los archivos y subcarpetas dentro, pero NO borres la carpeta en sí.
-
Si no puedes borrarlos, renombra la carpeta a
cache_oldy crea una nueva carpetacachevacía. -
Recarga tu tienda.
[TIP] También puedes limpiar la caché desde el panel de administración si tienes acceso: "Parámetros avanzados" > "Rendimiento" > "Vaciar la caché".
Paso 8: Revisa los logs del servidor
Si nada de lo anterior funciona, necesitas ver los logs del servidor. Ahí estará registrado el error exacto que está causando el problema.
-
En Syspanel, ve a la sección de "Logs" o "Registros del servidor". Busca los logs de error de Apache o Nginx.
-
Si usas cPanel, busca "Errores de error" o "Raw Access Logs".
-
También puedes revisar el archivo
var/logs/php_error.logdentro de tu PrestaShop (si existe).
Los logs te dirán cosas como: "PHP Fatal error: Allowed memory size of X bytes exhausted" o "require_once(): Failed opening required file". Con esa información, sabrás exactamente qué archivo o función está fallando.
Paso 9: Verifica que la versión de PHP sea compatible
PrestaShop necesita una versión de PHP específica para funcionar correctamente. Si tu hosting ha actualizado PHP a una versión demasiado reciente (como PHP 8.3) y tu PrestaShop es antiguo, es casi seguro que tendrás un error 500.
- PrestaShop 1.6: PHP 5.6 a 7.1
- PrestaShop 1.7: PHP 7.1 a 8.0
- PrestaShop 8.x: PHP 7.2 a 8.1
Para cambiar la versión de PHP, ve al panel de control de tu hosting. En Syspanel, busca "Versión de PHP" o "Gestor de PHP" y selecciona la más adecuada para tu tienda.
[WARNING] Si cambias la versión de PHP, asegúrate de que tus módulos y temas sean compatibles con esa versión. Un cambio brusco puede romper otras cosas.
Paso 10: Contacta con tu proveedor de hosting
Si has seguido todos estos pasos y el error 500 persiste, es hora de pedir ayuda profesional. El problema puede estar en el servidor (memoria del servidor, configuración de Apache, base de datos bloqueada, etc.) y solo tu proveedor de hosting tiene acceso para solucionarlo.
Al contactar, proporciona la siguiente información:
- El mensaje exacto de error que viste en modo debug.
- Los logs del servidor.
- La versión de PrestaShop y de PHP.
- Los pasos que ya has intentado.
Esto agilizará mucho la resolución del problema.
Preguntas frecuentes (FAQ)
¿Por qué mi PrestaShop da error 500 sin hacer nada?
Generalmente, un cambio en la configuración del servidor (como una actualización de PHP) o un módulo que se actualiza solo pueden desencadenar el error 500. También puede ser que el espacio en disco esté lleno o que la base de datos esté corrupta.
¿Puedo solucionar el error 500 sin acceso al panel de administración?
Sí. La mayoría de los pasos anteriores se hacen por FTP o editando archivos directamente. Solo necesitas acceso FTP y a la base de datos (phpMyAdmin). Si no tienes estos accesos, contacta con tu hosting.
¿El error 500 afecta al SEO de mi tienda?
Sí, si el error 500 dura mucho tiempo, Google puede interpretar que tu tienda no está disponible y puede afectar a tu posicionamiento. Es importante solucionarlo lo antes posible y, una vez arreglado, verificar en Google Search Console que la página responde correctamente.
¿Debo contratar a un profesional para solucionar el error 500?
Si no te sientes cómodo editando archivos o usando SQL, es recomendable contratar a un desarrollador especializado en PrestaShop. Un error mal solucionado puede empeorar la situación.
Conclusión
El error 500 internal server error en PrestaShop puede parecer aterrador, pero siguiendo este orden lógico de revisión, en el 90% de los casos lo puedes resolver tú mismo. Recuerda: activa el modo debug, revisa permisos, memoria PHP, el .htaccess, los módulos y la caché. Si nada funciona, los logs del servidor te darán la pista definitiva.
Sea cual sea la causa, lo importante es no entrar en pánico y actuar con método. Tu tienda online volverá a estar operativa y tus clientes podrán seguir comprando. Y si en algún momento necesitas ayuda, no dudes en contactar con tu proveedor de hosting o con un especialista en PrestaShop.
