13161216443

您所在位置: 首頁> 學習課程> PHP培訓 | PHP框架,簡述php 運行模式

PHP培訓 | PHP框架,簡述php 運行模式

發布百知教育 來源:學習課程 2019-11-12

SAPI 為 PHP 提供了一個和外部通信的接口, PHP 就是通過這個接口來與其它的應用進行數據交互的。常見的有:apache、apache2filter、apache2handler、cli、cgi、embed 、fast-cgi、isapi


CLI 模式


CLI( Command Line Interface ),也就是命令行接口,PHP 默認會安裝。通過這個接口,可以在 shell 環境下與 PHP 進行交互。


CGI 模式


CGI(Common Gateway Interface,通用網關接口)是一種重要的互聯網技術,可以讓一個客戶端,從網頁瀏覽器向執行在網絡服務器上的程序請求數據。CGI 描述了服務器和請求處理程序之間傳輸數據的一種標準。


原理:當 Nginx 收到瀏覽器 /index.php 這個請求后,首先會創建一個對應實現了 CGI 協議的進程,這里就是 php-cgi(PHP 解析器)。接下來 php-cgi 會解析 php.ini 文件,初始化執行環境,然后處理請求,再以 CGI 規定的格式返回處理后的結果,退出進程。最后,Nginx 再把結果返回給瀏覽器。整個流程就是一個Fork-And-Execute 模式。


當用戶請求數量非常多時,會大量擠占系統的資源如內存、CPU 時間等,造成效能低下。所以在用 CGI 方式的服務器下,有多少個連接請求就會有多少個 CGI 子進程,子進程反復加載是 CGI 性能低下的主要原因。


FastCGI 模式


FastCGI(Fast Common Gateway Interface,快速通用網關接口)是一種讓交互程序與 Web 服務器通信的協議。FastCGI 是早期通用網關接口(CGI)的增強版本。 FastCGI 致力于減少網頁服務器與 CGI 程序之間交互的開銷,從而使服務器可以同時處理更多的網頁請求。


PHP-FPM(PHP-FastCGI Process Manager)是 PHP 語言中實現了 FastCGI 協議的進程管理器,由 AndreiNigmatulin 編寫實現,已被 PHP 官方收錄并集成到內核中。


FastCGI 模式的優點:


從穩定性上看,FastCGI 模式是以獨立的進程池來運行 CGI 協議程序,單獨一個進程死掉,系統可以很輕易的丟棄,然后重新分配新的進程來運行邏輯;

從安全性上看,FastCGI 模式支持分布式運算。FastCGI 程序和宿主的 Server 完全獨立,FastCGI 程序掛了也不影響 Server;

從性能上看,FastCGI 模式把動態邏輯的處理從 Server 中分離出來,大負荷的 I O處理還是留給宿主 Server,這樣宿主 Server 可以一心一意處理 IO,對于一個普通的動態網頁來說, 邏輯處理可能只有一小部分,大量的是圖片等靜態。


Module 模式


PHP 常常與 Apache 服務器搭配形成 LAMP 配套的運行環境。把 PHP 作為一個子模塊集成到 Apache 中,就是 Module 模式


ISAPI 模式


SAPI(Internet Server Application Program Interface)是微軟提供的一套面向 Internet 服務的 API 接口,一個 ISAPI 的 DLL,可以在被用戶請求激活后長駐內存,等待用戶的另一個請求,還可以在一個 DL L里設置多個用戶請求處理函數,此外,ISAPI 的 DLL 應用程序和 WEB 服務器處于同一個進程中,效率要顯著高于CGI。由于微軟的排他性,只能運行于 Windows 環境。


PHP培訓:http://www.akpsimsu.com/php2019



上一篇:PHP培訓 | PHP未來就業前景如何?PHP還能選擇嗎?

下一篇:應屆生去公司找個Java程序員的職位需要什么技能?

相關推薦

www.akpsimsu.com

有位老師想和您聊一聊

關閉

立即申請