Cómo resolver errores 500 en PrestaShop (Guía para novatos)
¿Te ha pasado que entras a tu tienda PrestaShop y de repente te encuentras con una pantalla en blanco o un mensaje que dice "Error 500 – Internal Server Error"? No te preocupes, es uno de los errores comunes de PrestaShop y, aunque parece grave, casi siempre tiene solución. En esta guía para novatos, te voy a explicar paso a paso cómo diagnosticar y resolver un error 500 PrestaShop sin necesidad de ser un experto en programación.
Vamos a empezar por lo básico: un error 500 significa que el servidor web no puede procesar la solicitud por un problema interno. Puede ser por un plugin mal configurado, un archivo corrupto, falta de memoria o incluso un problema con el archivo .htaccess. No te asustes, lo resolveremos juntos.
¿Por qué aparece el error 500 en PrestaShop?
Antes de lanzarnos a solucionar, es importante entender las causas más frecuentes. Así podrás identificarlas más rápido en el futuro.
Causas comunes del error 500
- Módulos o plugins incompatibles: Al actualizar PrestaShop o instalar un nuevo módulo, a veces se generan conflictos.
- Problemas con el archivo .htaccess: Este archivo controla las reglas de reescritura de URL. Si se daña, el servidor se bloquea.
- Límite de memoria PHP excedido: Si tu tienda tiene muchos productos o tráfico, el servidor puede quedarse sin memoria.
- Permisos de archivos incorrectos: Los archivos de PrestaShop necesitan permisos específicos para funcionar.
- Errores en el tema (plantilla): Un tema mal codificado puede generar errores internos.
- Base de datos corrupta: Aunque es menos frecuente, también puede causar un error 500.
Primeros pasos: diagnóstico básico
Cuando te encuentras con el error 500 PrestaShop, lo primero es mantener la calma. No toques nada sin antes hacer un diagnóstico. Aquí te dejo los pasos iniciales.
1. Activa el modo debug de PrestaShop
PrestaShop tiene un modo de depuración que muestra el error específico en lugar de la pantalla en blanco. Para activarlo:
- Accede a tu panel de control (por ejemplo, Syspanel en el puerto 2106) o mediante FTP.
- Busca el archivo
config/defines.inc.phpen la raíz de tu instalación de PrestaShop. - Ábrelo con un editor de texto (como Notepad++ o el editor de archivos de Syspanel).
- Busca la línea:
define('_PS_MODE_DEV_', false); - Cámbiala a:
define('_PS_MODE_DEV_', true); - Guarda el archivo y recarga tu tienda. Ahora verás un mensaje de error detallado (como "Fatal error: Allowed memory size exhausted").
[TIP] Anota el mensaje de error que aparece. Te servirá para buscar la solución exacta.
2. Revisa los logs del servidor
Si el modo debug no muestra nada, los logs del servidor son tu mejor aliado. Dependiendo de tu hosting:
- Si usas Syspanel, ve a la sección "Logs" o "Registros" dentro del panel (puerto 2106). Allí encontrarás los errores de Apache o Nginx.
- También puedes acceder por FTP a la carpeta
log/ovar/log/de tu servidor.
Busca líneas que contengan "PHP Fatal error" o "500 Internal Server Error". Te darán pistas como "require(): Failed opening required" o "Maximum execution time exceeded".
Soluciones paso a paso para el error 500
Ahora que tienes una idea de la causa, vamos a aplicar las soluciones más efectivas. Sigue estos pasos en orden, ya que van de lo más simple a lo más complejo.
Solución 1: Aumentar el límite de memoria PHP
Este es el culpable en el 70% de los casos. Si tu tienda tiene muchos módulos o productos, el límite predeterminado (normalmente 128MB) puede ser insuficiente.
- Accede a tu panel de control (por ejemplo, Syspanel en el puerto 2106).
- Busca la opción "PHP Settings" o "Configuración de PHP".
- Aumenta el valor de
memory_limita 256MB o incluso 512MB. - Guarda los cambios y reinicia el servicio PHP (si es necesario).
Si no tienes acceso a esta opción, puedes crear un archivo php.ini en la raíz de tu PrestaShop con el siguiente contenido:
memory_limit = 256M
max_execution_time = 120
upload_max_filesize = 64M
[WARNING] No todos los hostings permiten modificar php.ini. Si no funciona, contacta a tu proveedor de hosting.
Solución 2: Restaurar el archivo .htaccess
El archivo .htaccess se corrompe fácilmente, especialmente después de actualizar módulos o cambiar la URL de la tienda.
- Accede por FTP o Syspanel a la raíz de tu instalación de PrestaShop.
- Busca el archivo
.htaccess(puede estar oculto, activa la opción "Mostrar archivos ocultos"). - Renómbralo a
.htaccess_old(por si acaso). - Ve al panel de administración de PrestaShop (si puedes acceder) y ve a "Configuración de la tienda" > "Tráfico y SEO" > "URLs amigables".
- Haz clic en "Guardar" sin cambiar nada. Esto regenerará el archivo .htaccess automáticamente.
Si no puedes acceder al panel de administración, puedes crear un archivo .htaccess básico temporal:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Luego, desde el panel de administración, regenéralo como te expliqué.
Solución 3: Desactivar módulos problemáticos
Un módulo recién instalado o actualizado puede estar causando el error. Para desactivarlos sin entrar al panel:
- Accede por FTP o Syspanel a la carpeta
modules/de tu PrestaShop. - Busca el módulo que sospechas que es problemático (por ejemplo, si instalaste uno justo antes del error).
- Renombra la carpeta del módulo añadiendo "_old" al final (ej:
paypal_old). - Recarga tu tienda. Si el error desaparece, ya sabes cuál es el culpable.
[INFO] Si no sabes qué módulo es, renombra todos los módulos que no sean esenciales (como los de pago o envío) de uno en uno hasta encontrar el problema.
Solución 4: Verificar permisos de archivos y carpetas
Los permisos incorrectos pueden impedir que PrestaShop lea o escriba archivos necesarios.
- Conecta por FTP o Syspanel a tu servidor.
- Asegúrate de que las carpetas tengan permisos 755 y los archivos 644.
- Puedes hacerlo desde la línea de comandos (si tienes acceso SSH) con:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
O desde el panel de archivos de Syspanel, selecciona todos los archivos y cambia los permisos de forma masiva.
Solución 5: Revisar la base de datos
Una base de datos corrupta también puede causar errores 500. PrestaShop tiene una herramienta de reparación integrada.
- Accede a tu panel de administración de PrestaShop (si puedes).
- Ve a "Parámetros avanzados" > "Base de datos".
- Haz clic en "Reparar base de datos".
Si no puedes acceder al panel, usa phpMyAdmin (desde Syspanel, busca "Bases de datos" > "phpMyAdmin"):
- Selecciona tu base de datos de PrestaShop.
- En la pestaña "Operaciones", busca "Reparar tabla" o ejecuta:
REPAIR TABLE `ps_*`;
[WARNING] Haz una copia de seguridad de la base de datos antes de cualquier reparación.
Preguntas frecuentes (FAQ)
¿El error 500 puede deberse a un problema de hosting?
Sí, a veces el servidor está sobrecargado o tiene una configuración incorrecta. Si has probado todo y el error persiste, contacta a tu proveedor de hosting y diles que revisen los logs del servidor.
¿Pierdo datos si restauro el archivo .htaccess?
No, restaurar el .htaccess solo afecta las reglas de reescritura de URL. Tus productos, clientes y pedidos no se ven afectados.
¿Cómo evito futuros errores 500 en PrestaShop?
- Mantén PrestaShop y todos los módulos actualizados.
- Haz copias de seguridad regulares de archivos y base de datos.
- No instales módulos de fuentes no confiables.
- Aumenta el límite de memoria PHP de forma preventiva.
¿Puedo solucionar el error 500 sin acceso al panel de administración?
Sí, usando FTP o el panel de control de tu hosting (como Syspanel en el puerto 2106). Las soluciones que te he dado (modificar .htaccess, desactivar módulos, cambiar permisos) se pueden hacer sin entrar al panel de administración.
Conclusión: No temas al error 500
Como has visto, el error 500 PrestaShop no es el fin del mundo. Con un poco de paciencia y siguiendo estos pasos, podrás resolverlo tú mismo la mayoría de las veces. Recuerda siempre activar el modo debug primero para obtener pistas, y luego aplica las soluciones en orden: aumentar memoria, restaurar .htaccess, desactivar módulos, revisar permisos y, por último, la base de datos.
Si después de todo esto el error persiste, no dudes en contactar a tu equipo de soporte técnico. Ellos tienen acceso a herramientas más avanzadas y podrán ayudarte a identificar el problema raíz. ¡Ánimo, que tu tienda volverá a funcionar en poco tiempo!
