温馨提示×

如何解决centos上php-fpm连接超时

小樊
44
2025-11-11 21:07:03
栏目: 编程语言

在 CentOS 上,如果 PHP-FPM 连接超时,可以尝试以下方法来解决问题:

  1. 修改 PHP-FPM 配置文件:

找到 PHP-FPM 配置文件(通常位于 /etc/php-fpm.d/www.conf 或 /etc/php-fpm.conf),使用文本编辑器打开它,例如:

sudo vi /etc/php-fpm.d/www.conf

找到以下参数并进行调整:

  • request_terminate_timeout:设置脚本执行的最大时间,单位为秒。增加此值以避免超时。例如,将其设置为 300(5 分钟):
request_terminate_timeout = 300s
  • fastcgi_read_timeout:设置 FastCGI 超时时间,单位为秒。增加此值以避免超时。例如,将其设置为 300(5 分钟):
fastcgi_read_timeout = 300s

保存更改并退出编辑器。

  1. 重启 PHP-FPM 服务:

在修改配置文件后,需要重启 PHP-FPM 服务以使更改生效。运行以下命令:

sudo systemctl restart php-fpm

或者

sudo service php-fpm restart
  1. 检查 Nginx 配置:

如果你使用的是 Nginx 作为 Web 服务器,请确保 Nginx 配置中的 proxy_read_timeout 参数设置得足够大。找到 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf),使用文本编辑器打开它,例如:

sudo vi /etc/nginx/nginx.conf

httpserverlocation 块中找到以下参数并进行调整:

proxy_read_timeout 300s;

保存更改并退出编辑器。

  1. 重启 Nginx 服务:

在修改配置文件后,需要重启 Nginx 服务以使更改生效。运行以下命令:

sudo systemctl restart nginx

或者

sudo service nginx restart
  1. 检查防火墙设置:

确保防火墙允许 PHP-FPM 和 Web 服务器之间的通信。如果使用的是 firewalld,请运行以下命令:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

如果使用的是 iptables,请运行以下命令:

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables restart

完成以上步骤后,PHP-FPM 连接超时问题应该得到解决。如果问题仍然存在,请检查应用程序代码以确保没有长时间运行的操作。

0