本篇文章主要講述的是cgi、fastcgi及php-fpm的原理概念,有興趣的朋友可以了解一下哦。
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的原理概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!