php之CGI、FastCGI、APACHE2HANDLER、CLI運行模式的詳解

來源:互聯網
上載者:User
CGI、FastCGI、APACHE2HANDLER、CLI有何區別?本文主要介紹了php的4種常見運行方式,詳解了CGI、FastCGI、APACHE2HANDLER、CLI。希望對大家有所協助。

SAPI:Server Application Programming Interface服務端應用編程連接埠。他就是php與其他應用互動的介面,php指令碼要執行有很多中方式,通過web伺服器,或者直接在命令列行下,也可以嵌入其他程式中。SAPI提供了一個和外部通訊的介面,常見的SAPI有:cgi、fast-cgi、cli、Apache模組的dll等。

1、CGI

CGI即通用閘道介面(common gatewag interface),它是一段程式,通俗的講CGI就象是一座橋,把網頁和WEB伺服器中的執行程式串連起來,它把HTML接收的指令傳遞給伺服器的執 行程式,再把伺服器執行程式的結果返還給HTML頁。CGI 的跨平台效能極佳,幾乎可以在任何作業系統上實現。

CGI方式在遇到串連請求(使用者 請求)先要建立cgi的子進程,啟用一個CGI進程,然後處理請求,處理完後結束這個子進程。這就是fork-and-execute模式。所以用cgi 方式的伺服器有多少串連請求就會有多少cgi子進程,子進程反覆載入是cgi效能低下的主要原因。都會當使用者請求數量非常多時,會大量擠占系統的資源如內 存,CPU時間等,造成效能低下。

2、FastCGI

fast-cgi 是cgi的升級版本,FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要啟用後,不會每次都要花費時間去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全稱PHP FastCGI進程管理器進行管理。

Web Server啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Module)。FastCGI進程管理器自身初始化,啟動多個CGI解譯器進程(可見多個php-cgi)並等待來自Web Server的串連。

當用戶端請求到達Web Server時,FastCGI進程管理器選擇並串連到一個CGI解譯器。Web server將CGI環境變數和標準輸入發送到FastCGI子進程php-cgi。

FastCGI子進程完成處理後將標準輸出和錯誤資訊從同一串連返回Web Server。當FastCGI子進程關閉串連時,請求便告處理完成。FastCGI子進程接著等待並處理來自FastCGI進程管理器(運行在Web Server中)的下一個串連。 在CGI模式中,php-cgi在此便退出了。

在上述情況中,你可以想象CGI通常有多慢。每一個Web 請求PHP都必須重新解析php.ini、重新載入全部擴充並重初始化全部資料結構。使用FastCGI,所有這些都只在進程啟動時發生一次。一個額外的 好處是,持續資料庫連接(Persistent database connection)可以工作。

3、APACHE2HANDLER
PHP作為Apache模組,Apache伺服器在系統啟動後,預先產生多個進程副本駐留在記憶體中,一旦有請求出 現,就立即使用這些空餘的子進程進行處理,這樣就不存在產生子進程造成的延遲了。這些伺服器複本在處理完一次HTTP請求之後並不立即退出,而是停留在電腦中等待下次請求。對於客戶瀏覽器的請求反應更快,效能較高。

4、CLI

cli是php的命令列運行模式,大家經常會使用它,但是可能並沒有注意到(例如:我們在linux下經常使用 “php -m”尋找PHP安裝了那些擴充就是PHP命令列運行模式;

相關推薦:

php fpm和fast-CGI有啥關係?而且還有一個疑問,就是PHP以CGI方式運行,請問以CGI方式運行到底是啥意思??

php fpm 安裝:php php-fpm安裝記錄

windows和Linux環境下php apache mysql 環境的搭建教程_PHP教程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.