一直對PHP的sapi是什麼東西好奇,在網上一查都是各類說fpm cgi fastcgi php-cgiphp
直到看了鳥哥的這篇文章介紹戳這裏,看到源碼下的sapi目錄纔有所瞭解。html
瞭解下PHP的架構體系會知道sapi是PHP提供的一種供其餘程序調用的接口(感受接口這詞好像不太準確,歡迎糾正),經過sapi其餘程序就能夠執行PHP腳本。git
具體提供的sapi有:github
本身認爲的和這個連接裏的差很少戳這裏 ,CGI是一種web server和外部程序定好數據參數的協議,php-cgi恰好這樣的CGI程序,每次請求過來都要啓動;web
是由於每次都要啓動CGI,要加載各類配置,初始化,因此出了fastcgi這種協議,能夠不用每次啓動CGI程序apache
php-fpm正是實現了fastcgi的一種sapi,看上面的sapi列表裏的fpm就是了,在編譯PHP時,有個segmentfault
'--enable-fpm' 引用百度百科對於PHP5.3.3以前來講,是個補丁包,旨在將FastCGI進程管理整合進PHP包中,也就是說5.3.3以後已經自動編譯進PHP裏了
對PHP-FPM更深的源碼解析在這兒戳api
理解了上面的CGI後,這個就是PHP實現CGI的程序(~~待定,並非很確信)php7
若有任何疑問,歡迎留言討論!架構