Cómo arreglar el error '500 Internal Server Error' en PrestaShop
¿Qué significa el error 500 en PrestaShop y por qué aparece?
El error 500 Internal Server Error es, probablemente, uno de los mensajes más frustrantes que puedes encontrar al gestionar una tienda online. Cuando aparece en PrestaShop, significa que el servidor ha encontrado una condición inesperada que le impide completar la solicitud. Es un error genérico: el servidor sabe que algo falla, pero no te dice exactamente qué es.
Lo primero que debes saber es que no estás solo. Este es uno de los problemas más comunes en tiendas PrestaShop, especialmente después de actualizar módulos, cambiar de servidor o modificar archivos de configuración. La buena noticia es que, en la mayoría de los casos, tiene solución y puedes hacerlo tú mismo sin ser un experto en sistemas.
En este artículo vamos a desglosar paso a paso cómo diagnosticar y solucionar el error 500 en PrestaShop. Desde los métodos más simples hasta los más avanzados, con instrucciones claras para que cualquier persona, aunque no tenga experiencia técnica, pueda intentarlo.
Causas más frecuentes del error 500 en PrestaShop
Antes de lanzarte a tocar archivos, es útil entender qué suele provocar este error. Así podrás ir directo al problema.
1. Permisos incorrectos en archivos y carpetas
PrestaShop necesita permisos específicos para leer y escribir archivos. Si después de una migración o instalación los permisos son demasiado restrictivos o demasiado abiertos, el servidor puede devolver un error 500.
2. Archivo .htaccess corrupto o dañado
El archivo .htaccess controla el comportamiento del servidor Apache. Si se corrompe tras una actualización o una modificación manual, puede romper toda la tienda.
3. Módulos incompatibles o mal configurados
Un módulo recién instalado o actualizado puede ser incompatible con tu versión de PrestaShop o con PHP. Esto es una causa muy común del error 500 prestashop.
4. Límite de memoria PHP excedido
Si tu tienda tiene muchas imágenes, módulos o un catálogo enorme, es posible que el límite de memoria PHP sea insuficiente. Esto provoca fallos fatales que se muestran como error 500.
5. Errores en el archivo settings.inc.php o parameters.php
Estos archivos contienen la configuración de la base de datos y parámetros clave. Si están mal escritos o desactualizados, el servidor no puede conectar con la base de datos.
6. Problemas con el certificado SSL o configuración de dominio
A veces, una configuración incorrecta de HTTPS o de redirecciones puede generar conflictos que terminan en un error 500.
7. Versión de PHP incompatible
PrestaShop es exigente con las versiones de PHP. Si tu servidor actualiza PHP a una versión más reciente y tu PrestaShop es antiguo, puede dejar de funcionar.
Primeros pasos: activa el modo debug de PrestaShop
El modo debug (depuración) es tu mejor aliado. Te mostrará el error real en pantalla en lugar del mensaje genérico. Para activarlo, sigue estos pasos:
Paso 1: Accede al archivo de configuración
Conéctate a tu servidor mediante FTP o al administrador de archivos de tu panel de hosting. Busca la carpeta raíz de tu PrestaShop y localiza el archivo config/defines.inc.php.
Paso 2: Modifica la constante
Abre el archivo con un editor de texto (como Notepad++ o Sublime Text) y busca la línea que dice:
define('_PS_MODE_DEV_', false);
Cámbiala por:
define('_PS_MODE_DEV_', true);
Paso 3: Guarda y recarga tu tienda
Guarda el archivo y recarga tu tienda. Ahora deberías ver un mensaje de error detallado, indicando el archivo y la línea exacta del problema.
[WARNING]
No olvides volver a poner_PS_MODE_DEV_enfalsecuando termines de solucionar el problema. Dejarlo activo en producción es un riesgo de seguridad grave.
Soluciones paso a paso para el error 500 en PrestaShop
Solución 1: Regenera el archivo .htaccess
Este es uno de los arreglos más rápidos y efectivos. Si el archivo está dañado, regenerarlo puede resolver el problema de inmediato.
- Accede a tu panel de administración de PrestaShop.
- Ve a Parámetros avanzados → Rendimiento.
- Busca la sección Regenerar archivo .htaccess.
- Activa la opción y haz clic en Guardar.
Si no puedes acceder al panel de administración, hazlo manualmente:
- Conéctate por FTP y renombra el archivo
.htaccessa.htaccess_old. - Recarga tu tienda. PrestaShop debería generar uno nuevo automáticamente.
- Si no lo genera, crea un archivo
.htaccessvacío con permisos 644 y vuelve a cargar.
[TIP]
Si después de esto el error persiste, desactiva temporalmente la opción "URLs amigables" en Parámetros avanzados → SEO y URLs, guarda y vuelve a activarla.
Solución 2: Aumenta el límite de memoria PHP
El límite de memoria por defecto en muchos servidores es de 128M, pero PrestaShop puede necesitar más. Para aumentarlo:
- Accede al archivo
config/defines.inc.php(el mismo de antes). - Busca la línea:
define('_PS_MEMORY_LIMIT_', '128M');
Cámbiala por:
define('_PS_MEMORY_LIMIT_', '256M');
Si no encuentras esa línea, puedes añadirla justo antes de la línea final require_once. También puedes crear un archivo php.ini en la raíz de tu tienda con este contenido:
memory_limit = 256M
max_execution_time = 300
Guarda los cambios y reinicia el servidor si es posible.
Solución 3: Revisa los permisos de archivos y carpetas
Los permisos incorrectos son una de las causas más comunes del prestashop error. Sigue esta tabla de referencia:
- Carpetas: 755
- Archivos: 644
- Carpeta
config: 755 - Carpeta
cache: 755 (y su contenido) - Carpeta
log: 755 - Carpeta
img: 755 - Carpeta
mails: 755 - Carpeta
modules: 755 - Carpeta
themes: 755 - Carpeta
var: 755 - Carpeta
translations: 755 - Carpeta
upload: 755 - Carpeta
download: 755
Para cambiarlos desde un panel como Syspanel (accesible en el puerto 2106), puedes usar el administrador de archivos o el cliente FTP. Si usas línea de comandos, el comando sería:
find /ruta/a/tu/tienda -type d -exec chmod 755 {} \;
find /ruta/a/tu/tienda -type f -exec chmod 644 {} \;
[WARNING]
No asignes permisos 777 a ninguna carpeta. Aunque puede parecer una solución rápida, es un agujero de seguridad enorme.
Solución 4: Desactiva módulos problemáticos
Si el error apareció justo después de instalar o actualizar un módulo, ese es el culpable más probable.
- Accede a tu servidor por FTP.
- Ve a la carpeta
modules. - Localiza la carpeta del módulo sospechoso y renómbrala añadiendo
_backupal final (ejemplo:moduloproblema_backup). - Recarga tu tienda. Si el error desaparece, el módulo era el problema.
Si no sabes cuál es el módulo problemático, renombra todos los módulos que hayas tocado recientemente. Luego, ve activándolos uno a uno desde el panel de administración para identificar al culpable.
[TIP]
Si no puedes acceder al panel, renombra la carpetamodulescompleta y crea una nueva vacía. PrestaShop se reconstruirá con los módulos por defecto. Esto es drástico, pero a veces es la única vía.
Solución 5: Verifica la configuración de la base de datos
Un error en la conexión con la base de datos también puede provocar un error 500. Revisa el archivo app/config/parameters.php (en PrestaShop 1.7+) o config/settings.inc.php (en versiones anteriores).
Busca estas líneas y verifica que los datos sean correctos:
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Si algo no coincide, corrígelo y guarda. También puedes probar a conectar con esos datos desde phpMyAdmin para asegurarte de que son válidos.
Solución 6: Cambia la versión de PHP
Si tu servidor actualizó PHP recientemente y tu PrestaShop es antiguo, es probable que la incompatibilidad sea la causa.
Desde Syspanel (puerto 2106) o tu panel de hosting, busca la opción de cambiar la versión de PHP. Prueba con una versión anterior, por ejemplo, si estabas en PHP 8.1 y ahora hay PHP 8.2, vuelve a 8.1. Si tu PrestaShop es de la versión 1.6, es recomendable usar PHP 5.6 o 7.0.
[INFO]
PrestaShop 1.6 no es compatible con PHP 8. Si tienes esta versión, necesitas PHP 7.0 o inferior. Para PrestaShop 1.7, se recomienda PHP 7.1 a 7.4.
Solución 7: Limpia la caché de PrestaShop
Una caché corrupta puede generar errores extraños. Para limpiarla:
- Conecta por FTP.
- Ve a la carpeta
var/cache(en PrestaShop 1.7+) ocache(en versiones antiguas). - Borra todos los archivos y subcarpetas dentro de
cache(pero no la carpeta en sí). - También puedes eliminar el contenido de
var/cache/prodyvar/cache/dev.
Si no tienes acceso FTP, puedes hacerlo desde el panel de administración en Parámetros avanzados → Rendimiento, pulsando el botón "Vaciar la caché".
Solución 8: Revisa los logs del servidor
Los logs son el diario del servidor. Te dirán exactamente qué está fallando.
Desde Syspanel (puerto 2106), busca la sección de logs o accede por SSH. Los logs de error típicos están en:
/var/log/apache2/error.log(en Apache)/var/log/nginx/error.log(en Nginx)
Busca las líneas que coincidan con la hora en la que apareció el error 500. El mensaje suele incluir la ruta del archivo problemático.
[TIP]
Si no entiendes los logs, copia el error y búscalo en Google. Es muy probable que alguien haya tenido el mismo problema y haya compartido la solución.
Soluciones avanzadas: cuando nada de lo anterior funciona
Revisa el archivo index.php de la raíz
A veces, el archivo index.php se daña o se modifica accidentalmente. Puedes reemplazarlo por una copia limpia descargando la misma versión de PrestaShop desde el sitio oficial y subiendo solo ese archivo.
Comprueba los permisos de los archivos de configuración
Los archivos parameters.php y defines.inc.php deben tener permisos 644. Si tienen 444 o 666, puede causar problemas. Cámbialos y prueba de nuevo.
Desactiva los overrides
Los overrides (sobrescrituras) de temas y módulos pueden causar conflictos. Para desactivarlos:
- En el archivo
config/defines.inc.php, busca y cambia:
define('_PS_DISABLE_OVERRIDES_', false);
por:
define('_PS_DISABLE_OVERRIDES_', true);
Guarda y recarga. Si el error desaparece, algún override es el problema.
Preguntas frecuentes (FAQ)
¿Puedo perder mis datos si intento arreglar el error 500?
No. Las soluciones descritas aquí no borran datos. Siempre es recomendable hacer una copia de seguridad antes de modificar archivos, pero el riesgo de pérdida de datos es mínimo.
¿Cuánto tiempo se tarda en solucionar?
Depende de la causa. Las soluciones rápidas como regenerar el .htaccess o limpiar la caché pueden tomar menos de 5 minutos. Las más complejas, como revisar módulos uno a uno, pueden llevar una hora.
¿Debo contactar con mi proveedor de hosting?
Si has probado todas las soluciones y el error persiste, es momento de contactar con tu proveedor. Ellos pueden revisar los logs del servidor y detectar problemas de infraestructura. Menciónales que ya has intentado los pasos básicos y que necesitas ayuda avanzada.
¿Syspanel es obligatorio para arreglar este error?
No, Syspanel es solo una herramienta de gestión. Puedes usar FTP, SSH o el panel de tu hosting. Si tu proveedor usa Syspanel, recuerda que se accede por el puerto 2106.
Consejos finales para evitar futuros errores 500
- Haz copias de seguridad antes de actualizar módulos, temas o PrestaShop.
- Mantén todo actualizado: PrestaShop, módulos, temas y PHP.
- Instala solo módulos de fuentes confiables.
- No modifiques archivos del núcleo sin saber lo que haces.
- Revisa los logs periódicamente para detectar problemas antes de que se conviertan en errores graves.
El error 500 prestashop es un problema serio, pero con paciencia y siguiendo estos pasos, podrás solucionarlo. Recuerda que el modo debug es tu mejor herramienta de diagnóstico y que la mayoría de las soluciones son más simples de lo que parecen. Si te quedas atascado, no dudes en pedir ayuda a tu proveedor de hosting o a la comunidad de PrestaShop. ¡Tu tienda volverá a estar online en poco tiempo!
