溫馨提示×

如何解決Linux上php-fpm連接超時

小樊
60
2025-07-09 09:07:16
欄目: 編程語言

在Linux上,PHP-FPM連接超時問題可能是由于多種原因導致的。以下是一些建議和解決方案:

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

編輯PHP-FPM配置文件(通常位于/etc/php-fpm.d/www.conf/etc/php/版本號/fpm/pool.d/www.conf),找到以下參數并進行調整:

  • request_terminate_timeout:設置請求超時時間,單位為秒。例如,將其設置為0表示無超時限制。默認值通常為0。
  • pm.process_idle_timeout:設置進程空閑超時時間,單位為秒。如果一個進程空閑時間超過這個值,它將被終止。默認值通常為10s。增加此值可以防止進程過早被終止。

例如:

request_terminate_timeout = 0
pm.process_idle_timeout = 30s

保存更改后,重啟PHP-FPM服務:

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

如果你使用的是Nginx作為Web服務器,請檢查Nginx配置文件(通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/域名),找到以下參數并進行調整:

  • proxy_connect_timeout:設置與PHP-FPM服務器建立連接的超時時間,單位為秒。默認值通常為75s。增加此值可以防止連接過早超時。
  • proxy_send_timeout:設置向PHP-FPM服務器發送請求的超時時間,單位為秒。默認值通常為75s。增加此值可以防止發送請求過早超時。
  • proxy_read_timeout:設置從PHP-FPM服務器讀取響應的超時時間,單位為秒。默認值通常為75s。增加此值可以防止讀取響應過早超時。

例如:

proxy_connect_timeout = 120
proxy_send_timeout = 120
proxy_read_timeout = 120

保存更改后,重啟Nginx服務:

sudo systemctl restart nginx
  1. 檢查防火墻設置:

確保防火墻允許PHP-FPM和Web服務器之間的通信。如果你使用的是iptables,可以使用以下命令打開相應的端口(例如,9000端口):

sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT

如果你使用的是ufw,可以使用以下命令:

sudo ufw allow 9000/tcp
  1. 檢查PHP代碼:

檢查你的PHP代碼中是否存在長時間運行的操作,例如復雜的計算、大量的數據庫查詢等。優化這些操作以減少執行時間。

  1. 查看日志文件:

查看PHP-FPM和Web服務器的日志文件,以獲取有關超時問題的更多詳細信息。這可以幫助你確定問題的根源并采取相應的解決措施。

希望以上建議能幫助你解決Linux上PHP-FPM連接超時的問題。

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