|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是關于PHP中的SAPI是什么?如何實現?(圖文),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。SAPI,特意去查了一下,它是 Server Application Programming Interface 的首字母縮寫,意思是服務器端應用編程接口。 這是 PHP 內核提供給外部調用其服務的接口,即外部系統可以通過 SAPI 來調用 PHP 提供的編譯腳本、執行腳本的服務。PHP 中實現的 SAPI 有很多,Cli、Fpm 是我們比較常見的。 從下圖可以較為清晰的理解外部系統是如何通過 SAPI 調用 PHP 服務的
圖片來源于網絡 接下來主要是討論下我們常見的 Cli、和 Fpm 是如何工作的。 CliCli(Command Line Interface),即命令行接口,用于在命令行下執行 PHP 腳本,就像 Shell 那樣,它是執行 PHP 腳本最簡便的一種方式。 Cli 是單進程模式,處理完請求后就直接關閉了,生命周期先后經歷 module startup、request startup、execute script、request shutdown、module shutdown,其執行流程比較簡單,關鍵的處理過程如下: main()-> php_cli_startup()-> do_cli()-> php_module_shutdown() FpmFpm(FastCGI Process Manager)是 PHP FastCGI 運行模式的一個進程管理器,從它的定義可以看出,Fpm的核心功能是進程管理。 FastCGI 是 Web 服務器(如Nginx、Apache)和處理程序之間的一種通信協議,它是與HTTP類似的一種應用層通信協議。 Fpm 是一種多進程模型,它由一個 master 進程和多個 worker 進程組成。master 進程啟動時會創建一個 socket,但是不會接收、處理請求,而是由 fork 出的 worker 子進程完成請求的接收及處理。即 master 進程管理 worker 進程,而 worker 進程才是真正的處理請求。 Fpm 在啟動后首先會進行 SAPI 的注冊操作;接著會進入 PHP 生命周期的 worder 進程的生命周期如下圖:
圖片來源于網絡 其生命周期主要經歷這幾個階段:等待請求、解析請求、請求初始化、執行 PHP 腳本、關閉請求。 master 進程主要通過三種不同的方式來管理 worder 進程,分別是靜態模式(static)、動態模式(dynamic)、按需模式(ondemand)。具體要使用哪種模式可以在conf配置中通過pm指定 以上就是PHP中的SAPI是什么?如何實現?(圖文)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!