¿Qué es el Error 504 Gateway Timeout en PrestaShop?
El error 504 Gateway Timeout ocurre cuando un servidor que actúa como puerta de enlace o proxy no recibe una respuesta a tiempo del servidor principal o de fondo (backend) al intentar procesar una solicitud de tu tienda PrestaShop. En el contexto de un e-commerce, este fallo suele manifestarse al realizar consultas pesadas en la base de datos, generar facturas masivas, exportar pedidos o durante procesos largos en el módulo de pago.
Causas Principales del Error 504 en PrestaShop
- Tiempo de espera agotado (Timeout): Configuración demasiado estricta en los límites de tiempo de espera en Nginx, Apache o PHP-FPM.
- Base de datos sobrecargada: Consultas lentas, tablas fragmentadas o falta de optimización en la base de datos MySQL/MariaDB.
- Falta de recursos en el servidor: Memoria RAM o CPU al límite debido a un tráfico elevado o a un hosting compartido insuficiente.
- Módulos defectuosos: Tareas cron mal configuradas o scripts de módulos que generan bucles infinitos.
Método 1: Aumentar el Timeout en PHP-FPM y Nginx / Apache
La causa más común es que el servidor se rinde antes de que PrestaShop termine de procesar la solicitud. Para solucionarlo, debes incrementar los límites de tiempo de ejecución.
- Accede a tu servidor vía SSH o mediante el panel de control de tu hosting (cPanel/Plesk).
- Edita el archivo de configuración de PHP (
php.ini) y aumenta los valores demax_execution_timeymax_input_time:max_execution_time = 300max_input_time = 300 - Si usas Nginx junto con PHP-FPM, edita el archivo de configuración de tu sitio o el archivo
nginx.confy añade las siguientes directivas dentro del bloque de ubicación de PHP:proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;fastcgi_send_timeout 300s;fastcgi_read_timeout 300s; - Reinicia los servicios web ejecutando en la terminal:
sudo systemctl restart php-fpmsudo systemctl restart nginx(oapache2según corresponda).
Método 2: Optimizar la Base de Datos desde phpMyAdmin
Una base de datos saturada hace que las consultas tarden demasiado, provocando el tiempo de espera agotado.
- Entra a phpMyAdmin desde tu panel de hosting.
- Selecciona la base de datos de tu tienda PrestaShop.
- Desplázate hasta el final de la lista de tablas, haz clic en Marcar todas y, en el menú desplegable de 'Con los seleccionados', elige Optimizar la tabla.
- Revisa la tabla
ps_connectionsyps_connections_log; si almacenan millones de registros de visitas antiguas, vacíalas para liberar espacio y acelerar las consultas.
Método 3: Desactivar Módulos Conflictivos en el Backoffice
Si el error ocurre específicamente al cargar ciertas páginas o realizar acciones concretas, un módulo puede estar bloqueando la ejecución.
- Activa el modo depuración (Debug) de PrestaShop editando el archivo
config/defines.inc.phpy cambiando el valor a true:define('_PS_MODE_DEV_', true); - Accede a tu tienda e intenta reproducir el error 504 para ver si se muestra una excepción específica relacionada con algún módulo.
- Si identificas el módulo problemático, desactívalo desde el panel de administración (Mejoras > Módulos > Gestor de módulos) o bórralo vía FTP si no puedes acceder al backoffice.