這裏,咱們嘗試瞭解cgi、fastcgi、php-cgi、php-fpm這四個概念php
cgi與fast-cgiweb
cgi再也不多說,是一種web server和 web應用交換數據的協議php-fpm
fastcgi是其改進版spa
這兩個概念不難理解3d
php-cgi與php-fpmserver
php-cgi是實現了fastcgi協議的可執行程序,目前已經被收入php官方收入內核blog
當你安裝了php後,天然會在相應的目錄下生成php-cgi繼承
他和php同樣進程
php是cli模式下運行php腳本的解釋器內存
php-cgi 是cgi模式下運行php腳本的解釋器
以下圖,打開/usr/bin路徑,你會同時發現這兩個可執行程序
php-fpm是對php-cgi的改進
也具備php腳本解釋器的功能
在php某些較新的版本也把他收入了內核
回到cgi與fastcgi
相比於cgi頻繁的fork-execute-end,fastcig實現了常駐內存
實現方法是經過一個主進程管理多個子進程的方式
php-cgi和php-fpm做爲fastcgi的實現
都很好的繼承了這一點
所以,在採用php-cg或者php-fpm的機器上
你都能看到一個mater-processed和幾個相應子進程