PHP的五種執行模式

2021-09-26 08:52:01 字數 1752 閱讀 8987

一、cgi(通用閘道器介面)

1、cgi把網頁和web伺服器中的執行程式連線起來,它把html接收的指令傳遞給伺服器的執行程式,再把伺服器執行程式的結果返還給html頁。cgi 的跨平台效能極佳,幾乎可以在任何作業系統上實現。cgi已經是比較老的模式了,這幾年都很少用了。

2、每有乙個使用者請求,都會先要建立cgi的子程序,然後處理請求,處理完後結束這個子程序,這就是fork-and-execute模式。 當使用者請求數量非常多時,會大量擠占系統的資源如記憶體,cpu時間等,造成效能低下。所以用cgi方式的伺服器有多少連線請求就會有多少cgi子程序,子程序反覆載入是cgi效能低下的主要原因。

二、fastcgi(常駐型)

1、fastcgi是cgi的公升級版本,fastcgi像是乙個常駐型的 cgi,它可以一直執行著,只要啟用後,不會每次都要花費時間去請求一次 。

2、fastcgi是乙個可伸縮地、高速地在http server和動態指令碼語言間通訊的介面。多數流行的http server都支援fastcgi,包括apache、nginx等,同時,fastcgi也被許多指令碼語言所支援,其中就有php。

3、fastcgi介面方式採用c/s結構,可以將http伺服器和指令碼解析伺服器分開,同時在指令碼解析伺服器上啟動乙個或者多個指令碼解析守護程序。當http伺服器每次遇到動態程式時,可以將其直接交付給fastcgi程序來執行,然後將得到的結果返回給瀏覽器。這種方式可以讓http伺服器專一地處理靜態請求或者將動態指令碼伺服器的結果返回給客戶端,這在很大程度上提高了整個應用系統的效能。

三、cli(命令列執行)

php在命令列執行的介面,區別於在web伺服器上執行的php環境(php-cgi,isapi等)。 也就是說,php不單可以寫前台網頁,它還可以用來寫後台的程式。 php的cli shell指令碼適用於所有的php優勢,使建立要麼支援指令碼或系統甚至與gui應用程式的服務端,在windows和linux下都是支援php-cli模式的。

【優點】

(1)使用多程序,子程序結束以後,核心會負責**資源;

(2)使用多程序,子程序異常退出不會導致整個程序thread退出,父程序還有機會重建流程;

(3)乙個常駐主程序,只負責任務分發,邏輯更清楚。

四、模組模式

2、模組模式mod_php5模組的形式整合,此時mod_php5模組的作用是接收apache傳遞過來的php檔案請求,並處理這些請求,然後將處理後的結果返回給apache。如果我們在apache啟動前在其配置檔案中配置好了php模組,(mod_php5), php模組通過註冊apache2的ap_hook_post_config掛鉤,在apache啟動的時候啟動此模組以接受php檔案的請求。

1、除了這種啟動時的載入方式,apache的模組可以在執行的時候動態裝載,這意味著對伺服器可以進行功能擴充套件而不需要重新對源**進行編譯,甚至根本不需要停止伺服器。我們所需要做的僅僅是給伺服器傳送訊號hup或者ap_sig_graceful通知伺服器重新載入模組。但是在動態載入之前,我們需要將模組編譯成為動態鏈結庫。此時的動態載入就是載入動態鏈結庫。 apache中對動態鏈結庫的處理是通過模組mod_so來完成的,因此mod_so模組不能被動態載入,它只能被靜態編譯進apache的核心。這意味著它是隨著apache一起啟動的。

五、isapi模式    

1、isapi是微軟提供的一套面向internet服務的api介面,乙個isapi的dll,可以在被使用者請求啟用後長駐記憶體,等待使用者的另乙個請求,還可以在乙個dll裡設定多個使用者請求處理函式,此外,isapi的dll應用程式和www伺服器處於同乙個程序中,效率要顯著高於cgi。(由於微軟的排他性,只能執行於windows環境)

PHP的4種執行模式

sapi提供了乙個和外部通訊的介面,常見的sapi有 cgi fast cgi cli apache模組的dll isapi cgicgi 即通用閘道器介面 commom gateway inte ce 它把網頁和web伺服器中的執行程式連線起來,把從html接收的指令傳遞給伺服器的執行程式,再把伺...

五種常見的 PHP 設計模式

設計模式對於每個人都非常有用 本片博文 自 觀察者模式為您提供了避免元件之間緊密耦合的另一種方法。該模式非常簡單 乙個物件通過新增乙個方法 該方法允許另乙個物件,即 觀察者 註冊自己 使本身變得可觀察。當可觀察的物件更改時,它會將訊息傳送到已註冊的觀察者。這些觀察者使用該資訊執行的操作與可觀察的物件...

php執行四種模式

四種分別如下 簡答說明下 cli 就是命令列,例如可以在控制台或者是shell中鍵入命令 php f index.phpcgi 規定了php與web server交流的規則,相當於執行了response exec php f index.php url cookie fastcgi這個一般nginx...