温馨提示×

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

小樊
97
2025-02-12 15:54:30
栏目: 编程语言
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在 CentOS 上,PHP-FPM 连接超时问题可能是由于多种原因导致的。以下是一些建议和解决方案:

  1. 调整 PHP-FPM 配置文件:

编辑 /etc/php-fpm.d/www.conf 文件,找到以下参数并进行调整:

  • request_terminate_timeout:设置脚本执行的最大时间,单位为秒。例如,将其设置为 0 表示无限制。默认值为 0。
  • fastcgi_read_timeout:设置 FastCGI 超时时间,单位为秒。例如,将其设置为 300。默认值为 60。

修改后,重启 PHP-FPM 服务:

sudo systemctl restart php-fpm
  1. 调整 Nginx 配置文件:

如果你使用的是 Nginx 作为 Web 服务器,请编辑 /etc/nginx/nginx.conf 文件,找到以下参数并进行调整:

  • proxy_connect_timeout:设置与后端服务器(PHP-FPM)的连接超时时间,单位为秒。例如,将其设置为 300。默认值为 75。
  • proxy_read_timeout:设置读取后端服务器响应的超时时间,单位为秒。例如,将其设置为 300。默认值为 60。
  • proxy_send_timeout:设置向后端服务器发送请求的超时时间,单位为秒。例如,将其设置为 300。默认值为 60。

修改后,重启 Nginx 服务:

sudo systemctl restart nginx
  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
  1. 检查 SELinux 设置:

如果 SELinux 已启用并阻止了 PHP-FPM 和 Web 服务器之间的通信,你可以尝试临时禁用 SELinux 进行测试:

sudo setenforce 0

如果这解决了问题,你可以考虑调整 SELinux 策略以允许所需的通信,或者将其永久设置为 permissive 模式(不推荐):

sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
  1. 检查 PHP 代码:

确保 PHP 代码中没有长时间运行的操作,例如无限循环或大量计算。如果有,请优化代码以减少执行时间。

尝试以上建议,看看是否能解决 CentOS 上 PHP-FPM 连接超时的问题。如果问题仍然存在,请提供更多详细信息以便进一步排查。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何解决ubuntu上php-fpm连接超时

0