cgi是通用閘道器介面定義。當web server收到/index.php這個請求後,會啟動對應的CGI程式,這裡就是PHP的解析器。接下來PHP解析器會解析php.ini檔案,初始化執行環境,然後處理請求,再以規定CGI規定的格式返回處理後的結果,退出進程。web server再把結果返回給瀏覽器。
fastcgi是一個協定。實現管理進程,提高cgi效能,標準cgi對每個請求都會解析php.ini,初始化環境,浪費時間;fastcgi啟動master進程,解析組態檔,初始化環境,然後啟動多個worker進程;請求過來時,master傳遞給worker進行處理;worker不夠用會預先多起幾個,worker空閒較多會停掉幾個。
是一個實現了fastcgi協定的程式。修改php.ini之後,php-cgi進程無法平滑重新啟動。php-fpm對此的處理機制是新的worker用新的設定,已經存在的worker處理完手上的活就可以歇著了,通過這種機制來平滑過度。
相關教學:PHP視訊教學
以上就是淺談cgi、fastcgi及php-fpm的原理概念的詳細內容,更多請關注TW511.COM其它相關文章!