首頁  >  文章  >  後端開發  >  CGI、FastCGI 和 PHP_FPM到底有什麼關係?

CGI、FastCGI 和 PHP_FPM到底有什麼關係?

不言
不言原創
2018-04-04 14:14:561783瀏覽

最近在使用vagrant搭建php的开发环境。
其中在搭建调试过程中,发现了很多问题(毕竟之前一直在用集成开发环境,一键安装搞定。。)。
进而调查了下CGI FastCGI 与 PHP-FPM 现总结如下:

一次請求過程概括

當你使用瀏覽器造訪了index.php,到底經歷了什麼?

CGI、FastCGI 和 PHP_FPM到底有什麼關係?

看完這張圖是不是有點清晰了?下面具體講解下。

當你輸入url位址存取index.php時,你的瀏覽器(客戶端)會發送請求到你的伺服器(nginx,apache等),但是伺服器只能處理html等靜態資源,像php,jsp這些動態資源伺服器是無法處理的,所以需要特定的解析器去處理,那麼伺服器與解析器是怎麼通訊(聯繫)的呢?就用到了CGI,它們透過CGI去通信,通信之後就需要使用PHP-FPM去解析php檔案了,解析完成之後,傳回給伺服器,伺服器再傳回給瀏覽器(客戶端),這樣一次請求流程就結束了。

所以:

  • CGI 是 Web Server 與 Web Application 之間資料交換的一種協定。

  • FastCGI:同 CGI,是一種通訊協議,但比 CGI 在效率上做了一些最佳化。

  • PHP-CGI:是 PHP (Web Application)對 Web Server 提供的 CGI 協定的介面程式。

  • PHP-FPM:是 PHP(Web Application)對 Web Server 提供的 FastCGI 協定的介面程序,額外也提供了相對智慧一些任務管理。

參考資料
CGI、FastCGI和PHP-FPM關係圖解

相關推薦:

php-fpm - 如何查看運行中的php_fpm的設定檔路徑?

以上是CGI、FastCGI 和 PHP_FPM到底有什麼關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn