¿Qué es el Error 504 Gateway Time-out en PrestaShop?
El error 504 Gateway Time-out ocurre cuando un servidor que actúa como puerta de enlace o proxy no recibe una respuesta a tiempo de otro servidor al intentar cargar una página de tu tienda online o acceder al panel de administración de PrestaShop. En el contexto de un e-commerce, este fallo es crítico ya que impide a tus clientes navegar o finalizar sus compras.
Principales causas del error 504 en PrestaShop
Entre los motivos más comunes que provocan esta incidencia en servidores web como Nginx o Apache se encuentran:
- Sobrecarga temporal del servidor o recursos limitados (RAM y CPU).
- Consultas SQL lentas o pesadas en la base de datos de PrestaShop.
- Scripts PHP que tardan demasiado tiempo en ejecutarse y superan el límite establecido.
- Problemas de configuración en el proxy inverso (Nginx) o en el servicio PHP-FPM.
Método 1: Aumentar el tiempo límite de ejecución en PHP y PHP-FPM
La causa más frecuente es que un script de PrestaShop tarde más de lo permitido en completarse. Debes incrementar el valor de max_execution_time.
- Accede al panel de control de tu servidor (cPanel, Plesk) o mediante SSH.
- Localiza el archivo
php.inide tu versión de PHP activa. - Modifica o añade las siguientes directivas:
max_execution_time = 300max_input_time = 300 - Si utilizas PHP-FPM, edita también el archivo de configuración del pool (ej.
/etc/php/8.1/fpm/pool.d/www.conf) y ajusta:request_terminate_timeout = 300 - Reinicia el servicio web correspondiente ejecutando
sudo systemctl restart php8.1-fpmo reiniciando Apache/Nginx.
Método 2: Configurar los tiempos de espera (Timeout) en Nginx
Si tu servidor utiliza Nginx como proxy inverso frente a Apache o PHP-FPM, es probable que Nginx esté cancelando la petición antes de que PrestaShop termine de procesarla.
- Abre el archivo de configuración de tu sitio en Nginx (suele estar en
/etc/nginx/sites-available/tudominio.como ennginx.conf). - Dentro del bloque
location ~ \.php$o en el bloqueserver, añade o incrementa los valores de timeout:proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;fastcgi_read_timeout 300s; - Guarda los cambios y valida la sintaxis de Nginx con el comando:
sudo nginx -t - Recarga el servicio para aplicar los cambios:
sudo systemctl reload nginx
Método 3: Optimizar la base de datos y limpiar la caché de PrestaShop
Un volumen excesivo de registros en tablas como ps_connections, ps_guest o los logs de depuración pueden saturar el servidor.
- Entra a phpMyAdmin y vacía (TRUNCATE) las tablas de logs y conexiones si están sobredimensionadas.
- Accede por FTP a tu instalación de PrestaShop y elimina manualmente el contenido de las carpetas
var/cache/prod/yvar/cache/dev/. - Optimiza las tablas de tu base de datos seleccionándolas y ejecutando la opción 'Optimizar tabla'.