溫馨提示×

如何解決centos上php-fpm連接超時問題

小樊
125
2025-02-12 15:54:30
欄目: 編程語言

在 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 連接超時的問題。如果問題仍然存在,請提供更多詳細信息以便進一步排查。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女