对于 Nginx + FastCGI上的504网关超时错误(php-fpm),我们可以修改PHP和nginx的执行超时时间。

配置php

修改 php.ini(CentOS路径是/etc/php.ini)最大执行时间为300秒

max_execution_time = 300


修改 php-fpm配置文件(CentOS路径是/etc/php-fpm.d/www.conf) 请求超时时间为300秒

request_terminate_timeout = 300


linux php重启

 ​

检查php进程是否启动

ps -ef | grep php-fpm


杀掉所有 php-fpm 进程

pkill php-fpm


重启php

/usr/sbin/php-fpm 


如果有以下报错,说明php-fpm文件夹不存在,手动新建一个文件夹即可,然后再重启php ​​/usr/sbin/php-fpm​

 ERROR: unable to bind listening socket for address '/run/php-fpm/www.sock': No such file or directory (2)
[04-Nov-2021 11:28:56] ERROR: FPM initialization failed


新建缺失的 php-fpm 文件夹

mkdir /run/php-fpm


最后记得检查 php 进程是否已启动 ​​ps -ef | grep php-fpm​

配置nginx

将 ​​fastcgi_read_timeout​​ 添加到如下:

    location ~ \.php/ {
if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
fastcgi_pass unix:/run/php-fpm/www.sock;
include fastcgi_params;
fastcgi_param SCRIPT_NAME $1;
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_read_timeout 300;
}


检查nignx配置文件

nginx -t


重启nginx

nginx -s reload