¿Por qué mi sitio en PrestaShop tiene errores 500?
¡Hola! Soy tu técnico de soporte amigable. Entiendo que ver un error 500 en tu tienda PrestaShop puede ser frustrante, especialmente cuando estás a punto de cerrar una venta o revisar tu inventario. No te preocupes, este error es más común de lo que parece y, por lo general, tiene solución. En este artículo, vamos a desglosar las causas más frecuentes del error 500 en PrestaShop, cómo identificarlas paso a paso y, lo más importante, cómo solucionarlas desde tu servidor Linux. Piensa en esto como una guía básica de SysAdmin solución para que tu tienda vuelva a funcionar sin complicaciones.
El error 500 es un código genérico que indica "Error interno del servidor". Esto significa que algo salió mal en el servidor web (Apache, Nginx) o en la aplicación (PrestaShop), pero no te da detalles específicos. Por eso, lo primero es entender qué lo causa. Las razones más comunes en PrestaShop errores incluyen: archivos corruptos, problemas de permisos, falta de memoria, módulos incompatibles o configuraciones incorrectas en PHP. Vamos a ver cada una.
¿Qué es exactamente un error 500 en PrestaShop?
Un error 500 es como un "cortocircuito" en tu sitio. El servidor recibe una petición (por ejemplo, cuando un cliente intenta ver un producto), pero algo impide que se procese correctamente. En lugar de mostrar la página, el servidor responde con un error 500. Esto puede ocurrir en cualquier página: el inicio, el carrito, el panel de administración, etc. La clave está en que el error no te dice dónde falla, así que tendremos que investigar.
[INFO] Un error 500 puede ser temporal (por ejemplo, por un pico de tráfico) o permanente (por ejemplo, por un archivo dañado). Si es temporal, a veces se soluciona recargando la página. Si persiste, sigue leyendo.
Causas comunes del error 500 en PrestaShop
Identificar la causa es el primer paso. Aquí tienes las más frecuentes:
1. Archivos .htaccess corruptos o mal configurados
PrestaShop genera automáticamente un archivo .htaccess en la raíz de tu sitio. Si este archivo se daña (por ejemplo, al modificar reglas de redirección o al actualizar el módulo de SEO), puede provocar un error 500.
2. Módulos o temas incompatibles
Un módulo mal programado, desactualizado o que entra en conflicto con otro puede causar un error interno. Lo mismo ocurre con los temas (plantillas) que no son compatibles con tu versión de PrestaShop.
3. Problemas de permisos de archivos y carpetas
En Linux, cada archivo y carpeta tiene permisos que determinan quién puede leer, escribir o ejecutar. Si los permisos son incorrectos (por ejemplo, demasiado restrictivos o demasiado abiertos), el servidor no podrá acceder a los archivos necesarios.
4. Límite de memoria PHP excedido
PrestaShop consume memoria PHP. Si tu tienda tiene muchos productos, módulos o tráfico, puede superar el límite de memoria configurado en tu servidor, generando un error 500.
5. Problemas con la base de datos
Una tabla corrupta, una consulta mal optimizada o un error en la conexión a la base de datos también pueden provocar errores 500.
6. Configuración incorrecta de PHP (versión o extensiones)
PrestaShop requiere una versión específica de PHP (generalmente 7.4 u 8.0+) y ciertas extensiones (como mbstring, gd, curl, etc.). Si tu servidor usa una versión antigua o le falta una extensión, puede fallar.
7. Problemas de caché
La caché de PrestaShop o del servidor (por ejemplo, Varnish) puede almacenar datos corruptos o desactualizados, causando errores.
Paso a paso: Cómo diagnosticar y solucionar el error 500
Vamos a actuar como un SysAdmin solución básico. Sigue estos pasos en orden. No te saltes ninguno, ya que cada uno nos da pistas.
Paso 1: Habilita la visualización de errores de PHP
Por defecto, PrestaShop oculta los errores de PHP para no mostrar información sensible a los usuarios. Pero tú, como administrador, puedes activarlos temporalmente para ver el mensaje exacto.
- Accede a tu servidor por FTP o al panel de control (por ejemplo, Syspanel en el puerto 2106).
- 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 sitio. Ahora, en lugar del error 500, verás un mensaje de error detallado (por ejemplo, "Fatal error: Allowed memory size exhausted...").
[WARNING] No dejes esta opción activada en producción, ya que expone información sensible. Una vez resuelto el error, vuelve a poner
false.
Paso 2: Revisa los logs del servidor
Los logs del servidor son el "diario de a bordo" de tu sitio. Ahí se registran todos los errores.
- En Syspanel (puerto 2106), ve a la sección "Logs" o "Registros".
- Busca el log de errores de Apache o Nginx (generalmente en
/var/log/apache2/error.logo/var/log/nginx/error.log). - También puedes ver el log de errores de PHP (por ejemplo,
/var/log/php_errors.log). - Busca líneas con la fecha y hora en que ocurrió el error. Verás algo como:
PHP Fatal error: Uncaught Error: Call to undefined function...
Paso 3: Restaura el archivo .htaccess
Si el error apareció después de modificar las URL amigables o instalar un módulo de SEO, prueba esto:
- Conéctate por FTP o Syspanel.
- En la raíz de tu sitio, busca el archivo
.htaccess. Si no lo ves, activa "Mostrar archivos ocultos" en tu cliente FTP. - Renómbralo a
.htaccess_backup(por si acaso). - Ahora, ve al panel de administración de PrestaShop (si puedes acceder) y ve a "Configuración de SEO y URL" -> "Configurar URL amigables" y haz clic en "Guardar". Esto regenerará el archivo.
- Si no puedes acceder al panel, crea un archivo
.htaccessvacío o usa uno de respaldo.
[TIP] Siempre haz una copia de seguridad de
.htaccessantes de modificarlo.
Paso 4: Verifica los permisos de archivos y carpetas
Los permisos incorrectos son una causa muy común. En Linux, los permisos recomendados para PrestaShop son:
- Archivos: 644 (lectura/escritura para el propietario, solo lectura para el grupo y otros).
- Carpetas: 755 (lectura/escritura/ejecución para el propietario, lectura/ejecución para los demás).
Puedes corregirlos desde la terminal (si tienes acceso SSH) o desde Syspanel:
- Por SSH: Ejecuta estos comandos en la raíz de tu sitio:
find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; - Por Syspanel: Ve a "Herramientas" -> "Corregir permisos" (si está disponible) o usa el administrador de archivos para cambiar permisos manualmente.
Paso 5: Aumenta el límite de memoria PHP
Si el error dice algo como "Allowed memory size of 134217728 bytes exhausted", necesitas aumentar la memoria.
- Busca el archivo
php.inide tu servidor. En Syspanel, suele estar en/etc/php/7.4/apache2/php.ini(o la versión que uses). - Busca la línea:
memory_limit = 128M(o similar). - Cámbiala a
memory_limit = 256Mo512M(dependiendo de los recursos de tu servidor). - Reinicia el servicio web: En Syspanel, ve a "Servicios" -> "Reiniciar Apache" o "Reiniciar Nginx".
Si no tienes acceso al php.ini, puedes crear un archivo php.ini en la raíz de tu sitio con la línea:
memory_limit = 256M
Paso 6: Desactiva módulos y temas problemáticos
A veces, un módulo recién instalado o actualizado es el culpable.
- Si puedes acceder al panel de administración, ve a "Módulos" y desactiva los módulos no esenciales, especialmente los de terceros.
- Si no puedes acceder, renombra la carpeta
modulestemporalmente (por ejemplo, amodules_old) desde FTP o Syspanel. Esto desactivará todos los módulos. Luego, ve a tu sitio: si funciona, el problema está en un módulo. Ve activándolos uno por uno para identificar el culpable. - Haz lo mismo con la carpeta
themes(renómbrala athemes_old). Esto cargará el tema por defecto.
Paso 7: Limpia la caché
La caché puede estar corrupta. Desde el panel de administración de PrestaShop, ve a "Parámetros avanzados" -> "Rendimiento" y haz clic en "Limpiar caché". Si no puedes acceder, elimina manualmente las carpetas de caché:
- Conéctate por FTP o Syspanel.
- Elimina el contenido de las carpetas:
/var/cache/(ocache/en la raíz)/var/cache/smarty//var/cache/smarty/compile//var/cache/smarty/cache/
Paso 8: Revisa la base de datos
Un error en la base de datos puede causar errores 500. Desde el panel de administración de PrestaShop, ve a "Parámetros avanzados" -> "Base de datos" y haz clic en "Reparar tablas". Si no puedes acceder, usa phpMyAdmin (desde Syspanel) para reparar las tablas manualmente.
Paso 9: Actualiza PrestaShop y los módulos
Las versiones antiguas tienen bugs conocidos. Asegúrate de tener la última versión de PrestaShop y de todos los módulos. Desde el panel de administración, ve a "Módulos" -> "Actualizaciones".
FAQ PrestaShop: Preguntas frecuentes sobre el error 500
Aquí tienes respuestas a las dudas más comunes que recibimos como técnicos de soporte.
¿Por qué veo el error 500 solo en algunas páginas?
Esto suele indicar un problema con un módulo o tema específico. Por ejemplo, si el error aparece al ver un producto, puede ser un módulo de atributos o la plantilla del producto.
¿El error 500 puede deberse a un ataque?
Sí, aunque no es lo más común. Un ataque de fuerza bruta o un script malicioso puede saturar el servidor o modificar archivos. Revisa los logs y cambia todas las contraseñas.
¿Cómo sé si es un problema del servidor o de PrestaShop?
Prueba a cargar una página estática (como un archivo info.php con <?php phpinfo(); ?>). Si funciona, el problema es de PrestaShop. Si también da error 500, es del servidor.
¿Puedo evitar el error 500 en el futuro?
Sí, con buenas prácticas:
- Mantén PrestaShop y módulos actualizados.
- Haz copias de seguridad periódicas.
- No instales módulos de fuentes no confiables.
- Monitorea el uso de memoria y los logs del servidor.
Herramientas útiles para SysAdmin en Linux
Si te sientes cómodo con la terminal, estos comandos pueden ayudarte:
- Ver logs en tiempo real:
tail -f /var/log/apache2/error.log - Ver permisos de un archivo:
ls -la - Cambiar permisos recursivamente:
chmod -R 755 carpeta - Ver el uso de memoria:
free -m - Reiniciar Apache:
sudo systemctl restart apache2(onginx)
Y recuerda, si usas Syspanel, todo esto es más visual. Accede a tu panel en http://tu-dominio:2106 y busca las herramientas mencionadas.
[TIP] Si después de todos estos pasos el error persiste, contacta a tu proveedor de hosting. Puede ser un problema de recursos del servidor (CPU, RAM) o una configuración que solo ellos pueden ajustar.
Conclusión
El error 500 en PrestaShop no es el fin del mundo. Con un enfoque metódico, identificando la causa (archivos, permisos, memoria, módulos) y aplicando las soluciones que te he dado, tu tienda volverá a funcionar. Recuerda siempre habilitar el modo debug temporalmente para ver el error exacto, revisar los logs y actuar paso a paso. Y no olvides desactivar el modo debug una vez resuelto.
Como SysAdmin solución, mi consejo es que te familiarices con estas herramientas básicas de Linux. Te ahorrarán tiempo y dolores de cabeza. Si tienes más dudas, no dudes en consultar nuestra FAQ PrestaShop o contactarnos directamente. ¡Estamos aquí para ayudarte!
¡Buena suerte con tu tienda!
