這篇文章主要介紹了php的4種常見執行方式,本文講解了cgi、fastcgi、apache2handler、cli等4種執行方式,需要的朋友可以參考下
1、cgi
cgi即通用閘道器介面(common gatewag inte***ce),它是一段程式,通俗的講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
php常見的執行方式
1.cgi通用閘道器介面。將php和前台連線在了一起,把html的指令傳給php,把php的結果傳給html。當有人訪問時,需要新建乙個cgi子程序,再啟用,在進行處理,處理完了之後退出,再有請求再新建。那麼有多少請求,就有多少子程序,會造成浪費資源,時間增大等問題。2.fastcgi和前乙個cgi...
常見的php執行方式
1 cgi cgi即通用閘道器介面 common gatewag inte ce 它是一段程式,通俗的講cgi就象是一座橋,把網頁和web伺服器中的執行程式連線起來,它把html接收的指令傳遞給伺服器的執 行程式,再把伺服器執行程式的結果返還給html頁。cgi 的跨平台效能極佳,幾乎可以在任何作業...
PHP的4種執行模式
sapi提供了乙個和外部通訊的介面,常見的sapi有 cgi fast cgi cli apache模組的dll isapi cgicgi 即通用閘道器介面 commom gateway inte ce 它把網頁和web伺服器中的執行程式連線起來,把從html接收的指令傳遞給伺服器的執行程式,再把伺...