国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP中的SAPI是什么?如何實現?(圖文)

2020-03-22 18:48:51
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于PHP中的SAPI是什么?如何實現?(圖文),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

SAPI,特意去查了一下,它是 Server Application Programming Interface 的首字母縮寫,意思是服務器端應用編程接口。

這是 PHP 內核提供給外部調用其服務的接口,即外部系統可以通過 SAPI 來調用 PHP 提供的編譯腳本、執行腳本的服務。PHP 中實現的 SAPI 有很多,Cli、Fpm 是我們比較常見的。

從下圖可以較為清晰的理解外部系統是如何通過 SAPI 調用 PHP 服務的

1195855007-5b9fcab3e5285_articlex.jpg

圖片來源于網絡

接下來主要是討論下我們常見的 Cli、和 Fpm 是如何工作的。

Cli

Cli(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()
Fpm

Fpm(FastCGI Process Manager)是 PHP FastCGI 運行模式的一個進程管理器,從它的定義可以看出,Fpm的核心功能是進程管理。

FastCGI 是 Web 服務器(如Nginx、Apache)和處理程序之間的一種通信協議,它是與HTTP類似的一種應用層通信協議。
注意:它只是一種協議!

Fpm 是一種多進程模型,它由一個 master 進程和多個 worker 進程組成。master 進程啟動時會創建一個 socket,但是不會接收、處理請求,而是由 fork 出的 worker 子進程完成請求的接收及處理。即 master 進程管理 worker 進程,而 worker 進程才是真正的處理請求。

Fpm 在啟動后首先會進行 SAPI 的注冊操作;接著會進入 PHP 生命周期的 module startup 階段,在這個階段會調用各個擴展定義的 MINT 鉤子函數。然后會進行一系列的初始化操作,最后 master、worker 進程進入不同的處理環節。

worder 進程的生命周期如下圖:

3952135648-5b9fcab409600_articlex.jpg

圖片來源于網絡

其生命周期主要經歷這幾個階段:等待請求、解析請求、請求初始化、執行 PHP 腳本、關閉請求。

master 進程主要通過三種不同的方式來管理 worder 進程,分別是靜態模式(html' target='_blank'>static)、動態模式(dynamic)、按需模式(ondemand)。具體要使用哪種模式可以在conf配置中通過pm指定

以上就是PHP中的SAPI是什么?如何實現?(圖文)的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高平市| 连城县| 宁海县| 沾化县| 昌都县| 河津市| 沐川县| 鲜城| 田林县| 封开县| 昭觉县| 嘉定区| 衡东县| 织金县| 同心县| 东丰县| 海丰县| 沅陵县| 巴南区| 瓦房店市| 桐庐县| 安泽县| 锦州市| 松阳县| 堆龙德庆县| 湖州市| 永胜县| 肇东市| 津市市| 潜江市| 江都市| 商洛市| 罗田县| 桐乡市| 荆门市| 中山市| 建阳市| 西乌| 南部县| 开原市| 杭锦旗|