Solucionar el error 500 en PrestaShop: causas y arreglos
¿Qué es el error 500 en PrestaShop y por qué aparece?
El error 500 (Internal Server Error) es uno de los avisos más temidos por cualquier dueño de una tienda online. A diferencia de otros errores más específicos, este mensaje genérico indica que algo falló en el servidor, pero no te dice exactamente qué. Es como si tu coche se parara en mitad de la carretera: sabes que hay un problema, pero necesitas levantar el capó para descubrirlo.
En el contexto de PrestaShop, un error 500 puede aparecer en cualquier momento: al intentar acceder al panel de administración, al cargar la tienda, al realizar un pago o incluso al ejecutar un módulo. La buena noticia es que, en la mayoría de los casos, tiene solución y no implica perder tu catálogo ni tus pedidos.
En esta guía completa, vamos a explicarte las causas más comunes y, sobre todo, los pasos exactos para solucionar el error 500 en PrestaShop, incluso si no tienes experiencia técnica. Al final, también responderemos a las preguntas frecuentes que nos llegan a soporte.
¿Cuáles son las causas más comunes del error 500 en PrestaShop?
Antes de lanzarte a hacer cambios, es importante entender qué puede estar provocando el fallo. Estas son las causas más habituales:
1. Archivos con permisos incorrectos
Los servidores necesitan permisos específicos para leer, escribir o ejecutar archivos. Si un archivo de configuración o una carpeta de caché tiene permisos demasiado restrictivos (o demasiado abiertos), el servidor puede bloquearse y devolver un error 500.
2. Problemas con el archivo .htaccess
El archivo .htaccess es un archivo de configuración oculto que controla redirecciones, URLs amigables y reglas de seguridad. Si se corrompe, se borra o tiene una sintaxis incorrecta, PrestaShop no podrá cargar correctamente.
3. Módulos incompatibles o mal configurados
Instalar un módulo de terceros (pagos, envíos, SEO) que no es compatible con tu versión de PrestaShop es una causa muy frecuente. El módulo puede generar un conflicto que rompe toda la tienda.
4. Límite de memoria del servidor agotado
Si tu tienda tiene muchas imágenes, módulos o tráfico, el servidor puede quedarse sin memoria PHP. Esto es especialmente común en planes de hosting básicos o compartidos.
5. Errores en el código del tema o plantilla
Un tema mal diseñado o con errores de programación puede provocar un fallo fatal. A veces, el problema aparece solo en una página concreta (por ejemplo, la ficha de producto).
6. Problemas con la versión de PHP
PrestaShop requiere una versión de PHP específica. Si tu hosting actualiza PHP automáticamente a una versión más nueva, es posible que tu versión de PrestaShop no sea compatible y aparezca el error.
7. Base de datos dañada o sobrecargada
Aunque menos común, una tabla corrupta en la base de datos también puede generar un error 500, sobre todo si el fallo ocurre en una acción concreta (login, búsqueda, checkout).
Paso 1: Activa el modo debug para ver el error real
El error 500 es un mensaje genérico. Para ver el error exacto, necesitas activar el modo debug de PrestaShop. Esto te mostrará un mensaje detallado con la línea y el archivo donde falla. No te asustes: es el primer paso y el más importante.
¿Cómo activar el modo debug?
- Accede a tu hosting mediante FTP o el administrador de archivos del panel de control (si usas Syspanel, entra por el puerto 2106).
- Busca el archivo
config/defines.inc.phpen la raíz de tu tienda. - Descarga el archivo y ábrelo con un editor de texto (como Notepad++ o Sublime Text).
- Busca la línea que pone:
define('_PS_MODE_DEV_', false); - Cambia
falseportrue:define('_PS_MODE_DEV_', true); - Guarda el archivo y súbelo de nuevo a tu hosting, sobrescribiendo el original.
- Ahora, recarga tu tienda. Verás un mensaje de error mucho más descriptivo, por ejemplo:
- "Fatal error: Uncaught Error: Call to undefined function..."
- "Allowed memory size of X bytes exhausted..."
[WARNING]
No dejes el modo debug activado en una tienda en producción. Una vez resuelto el problema, vuelve a cambiarlo afalsepara que los clientes no vean errores internos.
Paso 2: Revisa y corrige los permisos de archivos y carpetas
Los permisos incorrectos son una de las causas más fáciles de solucionar. Los valores estándar para PrestaShop son:
- Carpetas: 755
- Archivos: 644
- Carpeta
var/cacheyvar/logs: 775 (a veces 777 en entornos de desarrollo)
¿Cómo cambiarlos?
- Entra a tu hosting por FTP o por el administrador de archivos de Syspanel (puerto 2106).
- Selecciona todos los archivos y carpetas de la raíz de tu tienda.
- Usa la opción "Permisos" o "CHMOD" de tu cliente FTP.
- Aplica 755 a carpetas y 644 a archivos.
[TIP]
Si no sabes distinguir archivos de carpetas en tu cliente FTP, muchos (como FileZilla) te permiten ordenar por tipo. Las carpetas suelen aparecer con una "/" al final.
Paso 3: Regenera el archivo .htaccess
El .htaccess es un archivo oculto. Si se ha corrompido, la forma más rápida de arreglarlo es regenerarlo desde el panel de administración de PrestaShop.
Método A: Desde el back-office (si tienes acceso)
- Ve a Parámetros avanzados > Rendimiento.
- Busca la sección "URLs amigables".
- Activa (o desactiva y vuelve a activar) la opción "Usar URL amigables".
- Guarda los cambios. Esto forzará a PrestaShop a regenerar el
.htaccess.
Método B: Crear uno manualmente (si no tienes acceso al back-office)
- Conecta por FTP y busca el archivo
.htaccessen la raíz. Si existe, renómbralo a.htaccess.bak. - Ve a la carpeta
installde tu PrestaShop (si aún existe) y busca un archivo llamadohtaccess.sample. - Cópialo y renómbralo a
.htaccessen la raíz. - Si no tienes ese archivo, puedes crear uno vacío con el siguiente contenido básico (esto es solo un mínimo para que cargue):
# START PrestaShop <IfModule mod_rewrite.c> RewriteEngine On </IfModule> # END PrestaShop
[INFO]
Si no tienes acceso al back-office, usar el método B es una solución temporal. Lo ideal es que luego entres al panel y regeneres las URLs amigables para que el archivo se cree completo.
Paso 4: Desactiva módulos sospechosos o incompatibles
Si el error empezó después de instalar o actualizar un módulo, ese es tu principal sospechoso. La forma más segura de comprobarlo es desactivándolo, pero si no puedes entrar al back-office, necesitas hacerlo desde la base de datos.
Método con acceso al back-office
- Ve a Módulos > Módulos y servicios.
- Ordena por "Módulos instalados".
- Desactiva los módulos que hayas instalado recientemente, uno a uno, y comprueba si el error desaparece.
Método sin acceso al back-office
- Entra a tu base de datos mediante phpMyAdmin (desde Syspanel, puerto 2106).
- Busca la tabla
ps_module(el prefijo puede variar si lo cambiaste). - Busca la columna
activey localiza el módulo sospechoso. - Cambia el valor de
activede1a0.
[WARNING]
Si juegas directamente con la base de datos, haz una copia de seguridad previa. Un error aquí puede romper más cosas.
Paso 5: Aumenta el límite de memoria PHP
Si el error menciona "Allowed memory size", tu servidor no tiene suficiente memoria para ejecutar PrestaShop. Puedes aumentarlo desde el archivo config/defines.inc.php o desde el .htaccess.
Opción 1: Editar defines.inc.php
- Abre el archivo
config/defines.inc.php. - Busca la línea:
define('_PS_MEMORY_LIMIT_', '128M'); - Cámbiala a
256Mo512M:define('_PS_MEMORY_LIMIT_', '512M');
Opción 2: Editar .htaccess
Añade estas líneas al final del archivo .htaccess:
php_value memory_limit 512M
php_value max_execution_time 300
Opción 3: Desde el panel de hosting
En Syspanel (puerto 2106), busca la sección de "PHP" o "Configuración de PHP" y cambia el valor de memory_limit a 512M.
[TIP]
Si tu plan de hosting no te permite modificar estos valores, tendrás que contactar con soporte o considerar migrar a un plan superior.
Paso 6: Verifica la compatibilidad de la versión de PHP
Cada versión de PrestaShop requiere una versión de PHP concreta. Por ejemplo:
- PrestaShop 1.7: PHP 7.1 a 7.4 (idealmente 7.4)
- PrestaShop 1.6: PHP 5.6 a 7.2 (no superior a 7.2)
¿Cómo comprobarlo?
- Crea un archivo llamado
info.phpen la raíz de tu tienda. - Escribe dentro:
<?php phpinfo(); - Ábrelo en tu navegador (ej:
tudominio.com/info.php). - Busca la línea "PHP Version".
Si tu versión de PHP no es compatible, tienes dos opciones:
- Cambiar la versión de PHP desde Syspanel (puerto 2106). Normalmente hay una sección "Versión PHP" donde puedes elegir.
- Actualizar PrestaShop a una versión más moderna.
[WARNING]
Cambiar la versión de PHP puede romper otros módulos o tu tema. Hazlo con cuidado y prueba la tienda después.
Paso 7: Limpia la caché de PrestaShop
Una caché corrupta es otra causa clásica del error 500. Puedes limpiarla manualmente:
- Conecta por FTP.
- Ve a la carpeta
var/cache(en PrestaShop 1.7) ocache(en PrestaShop 1.6). - Borra todo el contenido de las subcarpetas
devyprod. - No borres las carpetas en sí, solo su interior.
[TIP]
Si no puedes borrar algunos archivos, intenta cambiar los permisos de la carpeta a 777 temporalmente, borra y vuelve a poner 755.
Paso 8: Revisa los logs del servidor
Si después de todos estos pasos el error persiste, los logs del servidor te darán la pista definitiva. Estos registros son como la caja negra de un avión: contienen el error exacto.
¿Dónde encontrarlos?
- En Syspanel (puerto 2106), busca la sección "Registros" o "Logs".
- También puedes encontrar un archivo de log en
var/logs/dentro de tu PrestaShop (si el modo debug está activo).
Busca errores tipo:
- "PHP Fatal error"
- "Uncaught Error"
- "MySQL server has gone away"
Preguntas frecuentes (FAQ)
¿El error 500 puede deberse a un ataque hacker?
Sí, aunque es menos común. Si tu tienda fue comprometida, es posible que hayan modificado archivos o inyectado código malicioso. Revisa la fecha de modificación de los archivos principales y escanea con un antivirus web.
¿Puedo evitar el error 500 en el futuro?
Sí, con estas buenas prácticas:
- Mantén PrestaShop, módulos y tema siempre actualizados.
- Haz copias de seguridad periódicas (archivos y base de datos).
- No instales módulos piratas o de fuentes no confiables.
- Supervisa el consumo de memoria y tráfico de tu hosting.
¿Qué hago si nada de esto funciona?
Si has probado todo y el error sigue, puede que el problema esté en el servidor (configuración de Apache/Nginx, firewall, etc.). En ese caso, contacta con el soporte técnico de tu hosting. Si usas Syspanel, el puerto de acceso es el 2106 y suelen responder rápido.
¿Puedo perder mis pedidos o clientes con un error 500?
No, los datos se guardan en la base de datos, no en los archivos de la tienda. Mientras no toques la base de datos, tus pedidos, clientes y productos están a salvo.
Conclusión: el error 500 tiene solución (y suele ser simple)
El error 500 en PrestaShop puede parecer un muro infranqueable, pero como has visto, la mayoría de las causas tienen un arreglo claro y accesible para cualquier persona, incluso sin conocimientos técnicos avanzados. La clave está en activar el modo debug para ver el error real, y luego ir descartando causas una a una: permisos, .htaccess, módulos, memoria y versión de PHP.
Recuerda siempre trabajar con una copia de seguridad a mano y, si te sientes perdido, no dudes en pedir ayuda al soporte de tu hosting. Con un poco de paciencia y esta guía, tu tienda online volverá a estar operativa en muy poco tiempo.
