¿Qué es el Error 504 Gateway Timeout en PrestaShop?
El error 504 Gateway Timeout es uno de los problemas más frustrantes a los que se enfrenta cualquier administrador de e-commerce. Ocurre cuando un servidor que actúa como puerta de enlace o proxy no recibe una respuesta oportuna del servidor principal (como Apache o Nginx) o de PHP-FPM al intentar procesar una solicitud de PrestaShop. Esto suele suceder durante procesos pesados como la importación de grandes catálogos, la regeneración de miniaturas o consultas SQL muy complejas.
Principales Causas del Error 504 en tu Tienda
- Tiempo de espera (timeout) agotado en el servidor web Nginx o Apache.
- Configuración insuficiente de max_execution_time y memory_limit en PHP.
- Consultas a la base de datos excesivamente lentas o tablas de PrestaShop corrompidas.
- Problemas temporales con servicios de CDN o proxies inversos como Cloudflare.
Método 1: Aumentar los límites de tiempo de ejecución en PHP
La causa más común es que PHP agota el tiempo máximo permitido para ejecutar un script. Sigue estos pasos para solucionarlo:
- Accede al panel de control de tu hosting o servidor VPS mediante SSH o gestor de archivos.
- Localiza tu archivo
php.inicorrespondiente a la versión de PHP que utiliza tu PrestaShop. - Modifica o añade las siguientes directivas para ampliar los tiempos y recursos:
max_execution_time = 300max_input_time = 300memory_limit = 512M - Guarda los cambios y reinicia tu servidor web (Apache o PHP-FPM) para aplicar la nueva configuración.
Método 2: Configurar los tiempos de espera en Nginx y Apache
Si tu servidor utiliza Nginx como proxy inverso frente a Apache, es probable que Nginx esté cancelando la petición antes de que PHP termine de procesarla. Debes ajustar los parámetros de timeout:
- Abre el archivo de configuración de tu dominio en Nginx (generalmente en
/etc/nginx/sites-available/tu-tienda.com). - Añade o incrementa los valores de timeout dentro del bloque
location:proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;fastcgi_read_timeout 300s; - Verifica que la sintaxis sea correcta ejecutando
sudo nginx -ty recarga Nginx consudo systemctl reload nginx.
Método 3: Optimizar la base de datos y limpiar la caché de PrestaShop
Una base de datos sobrecargada con registros de logs masivos o tablas temporales bloqueadas puede provocar un cuello de botella que dispare el error 504.
- Entra a phpMyAdmin desde tu hosting.
- Selecciona la base de datos de tu PrestaShop y busca tablas pesadas como
ps_connections,ps_connections_sourceops_log. - Vacia estas tablas si contienen millones de registros innecesarios utilizando la orden
TRUNCATE TABLE nombre_de_tabla;. - Finalmente, elimina manualmente el contenido de la carpeta
var/cache/en la raíz de tu instalación de PrestaShop para forzar la regeneración limpia de la caché.