php提供的sapi有哪些?CGI、FastCGI、php-fpm、php-cgi解釋

1、前言

一直對PHP的sapi是什麼東西好奇,在網上一查都是各類說fpm cgi fastcgi php-cgiphp

直到看了鳥哥的這篇文章介紹戳這裏,看到源碼下的sapi目錄纔有所瞭解。html

2、sapi是什麼

瞭解下PHP的架構體系會知道sapi是PHP提供的一種供其餘程序調用的接口(感受接口這詞好像不太準確,歡迎糾正),經過sapi其餘程序就能夠執行PHP腳本。git

具體提供的sapi有:github

  • apache2handler
  • cgi
  • cli
  • embed
  • fpm
  • litespeed
  • phpdbg

3、

cgi

本身認爲的和這個連接裏的差很少戳這裏 ,CGI是一種web server和外部程序定好數據參數的協議,php-cgi恰好這樣的CGI程序,每次請求過來都要啓動;web

fastcgi

是由於每次都要啓動CGI,要加載各類配置,初始化,因此出了fastcgi這種協議,能夠不用每次啓動CGI程序apache

php-fpm

php-fpm正是實現了fastcgi的一種sapi,看上面的sapi列表裏的fpm就是了,在編譯PHP時,有個segmentfault

'--enable-fpm'
引用百度百科對於PHP5.3.3以前來講,是個補丁包,旨在將FastCGI進程管理整合進PHP包中,也就是說5.3.3以後已經自動編譯進PHP裏了

對PHP-FPM更深的源碼解析在這兒api

php-cgi

理解了上面的CGI後,這個就是PHP實現CGI的程序(~~待定,並非很確信)php7

若有任何疑問,歡迎留言討論!架構

相關文章
相關標籤/搜索