Notez que cet article a été écrit il y a plus de 5 ans, mais il n'est pas forcément obsolète. Il a été mis à jour il y a moins de 9 mois.
L’erreur 504 Gateway Timeout arrive lorsque l’exécution d’une page nécessite plus de temps que celui alloué par défaut, à savoir 150s = 3min. Une page peut nécessiter tant de temps s’il s’agit d’installer un certain nombre de choses en arrière plan. Par exemple, l’installation d’une base de données wordPress, ou l’injection du contenu d’une démo de thème. Ce sont les deux cas où cela m’est arrivé. Mon serveur fonctionne avec Nginx et FastCGI (php7.0-fpm).
Sur Nginx + FastCGI (php7.0-fpm)
Editer le fichier php.ini xavier@server:~$ nano /etc/php/7.0/fpm/php.ini et rechercher la ligne max_execution_time = 150 . Remplacer par ce que vous voulez. La valeur 300 est préconisée, j’ai mis pour ma part 600 (10min), pour être tranquille pendant l’installation de wordPress. On peut redescendre cette valeur par la suite.
Il est nécessaire aussi d’ajouter le paramètre request_terminate_timeout à la même valeur dans le fichier de configuration Virtual Host de Nginx.
1 |
xavier@server:~$ nano /etc/nginx/conf.d/www.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
... location ~ \.php$ { #root html; try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 600; // ← LIGNE À RAJOUTER } ... |
On surcharge le paramètre max_execution_time
de php.ini
dans le fichier de pool.d
pour fpm
:
1 |
php_admin_value[max_execution_time] = 600 |
Et l’on redémarre FastCGI et Nginx:
1 2 |
xavier@server:~$ systemctl restart php7.0-fpm xavier@server:~$ systemctl restart nginx |
Sur Nginx comme proxy pour Apache
Ajouter les lignes suivantes au fichier nginx.conf :
1 2 3 4 |
proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; |
puis redémarrer Nginx: systemctl restart nginx
Et hop, on est tranquille pour faire l’installation de wordPress, ou d’un thème un peu lourd. On peut ensuite refaire la manipulation pour repasser la valeur à 300. Si l’on passe la valeur à 0, il n’y a plus de limite.
Merci, j’ai pu résoudre le problème grâce à votre tutoriel
Merci pour cette très bonne page qui n’a pas vieilli en 2019. C’est rare de trouver de la documentation de bonne qualité en français et c’est très appréciable d’en trouver! Qu’elle vienne de cette belle région de l’Hérault , c’est encore mieux!