成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

PHP 的 SAPI 是個(gè)什么東西

venmos / 2197人閱讀

摘要:是服務(wù)器如和處理程序之間的一種通信協(xié)議,它是與類(lèi)似的一種應(yīng)用層通信協(xié)議。注意它只是一種協(xié)議是一種多進(jìn)程模型,它由一個(gè)進(jìn)程和多個(gè)進(jìn)程組成。進(jìn)程主要通過(guò)三種不同的方式來(lái)管理進(jìn)程,分別是靜態(tài)模式動(dòng)態(tài)模式按需模式。

SAPI,特意去查了一下,它是 Server Application Programming Interface 的首字母縮寫(xiě),意思是服務(wù)器端應(yīng)用編程接口。

這是 PHP 內(nèi)核提供給外部調(diào)用其服務(wù)的接口,即外部系統(tǒng)可以通過(guò) SAPI 來(lái)調(diào)用 PHP 提供的編譯腳本、執(zhí)行腳本的服務(wù)。PHP 中實(shí)現(xiàn)的 SAPI 有很多,CliFpm 是我們比較常見(jiàn)的。

從下圖可以較為清晰的理解外部系統(tǒng)是如何通過(guò) SAPI 調(diào)用 PHP 服務(wù)的

圖片來(lái)源于網(wǎng)絡(luò)

接下來(lái)主要是討論下我們常見(jiàn)的 Cli、和 Fpm 是如何工作的。

Cli

Cli(Command Line Interface),即命令行接口,用于在命令行下執(zhí)行 PHP 腳本,就像 Shell 那樣,它是執(zhí)行 PHP 腳本最簡(jiǎn)便的一種方式。

Cli 是單進(jìn)程模式,處理完請(qǐng)求后就直接關(guān)閉了,生命周期先后經(jīng)歷 module startup、request startup、execute scriptrequest shutdown、module shutdown,其執(zhí)行流程比較簡(jiǎn)單,關(guān)鍵的處理過(guò)程如下:

main()-> php_cli_startup()-> do_cli()-> php_module_shutdown()
Fpm

Fpm(FastCGI Process Manager)是 PHP FastCGI 運(yùn)行模式的一個(gè)進(jìn)程管理器,從它的定義可以看出,F(xiàn)pm的核心功能是進(jìn)程管理。

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

Fpm 是一種多進(jìn)程模型,它由一個(gè) master 進(jìn)程和多個(gè) worker 進(jìn)程組成。master 進(jìn)程啟動(dòng)時(shí)會(huì)創(chuàng)建一個(gè) socket,但是不會(huì)接收、處理請(qǐng)求,而是由 fork 出的 worker 子進(jìn)程完成請(qǐng)求的接收及處理。即 master 進(jìn)程管理 worker 進(jìn)程,而 worker 進(jìn)程才是真正的處理請(qǐng)求。

Fpm 在啟動(dòng)后首先會(huì)進(jìn)行 SAPI 的注冊(cè)操作;接著會(huì)進(jìn)入 PHP 生命周期的 module startup 階段,在這個(gè)階段會(huì)調(diào)用各個(gè)擴(kuò)展定義的 MINT 鉤子函數(shù)。然后會(huì)進(jìn)行一系列的初始化操作,最后 master、worker 進(jìn)程進(jìn)入不同的處理環(huán)節(jié)。

worder 進(jìn)程的生命周期如下圖:

圖片來(lái)源于網(wǎng)絡(luò)

其生命周期主要經(jīng)歷這幾個(gè)階段:等待請(qǐng)求、解析請(qǐng)求、請(qǐng)求初始化、執(zhí)行 PHP 腳本、關(guān)閉請(qǐng)求。

master 進(jìn)程主要通過(guò)三種不同的方式來(lái)管理 worder 進(jìn)程,分別是靜態(tài)模式(static)、動(dòng)態(tài)模式(dynamic)、按需模式(ondemand)。具體要使用哪種模式可以在conf配置中通過(guò)pm指定。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30902.html

相關(guān)文章

  • 深入了解SAPI

    摘要:將環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到子進(jìn)程子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回。當(dāng)子進(jìn)程關(guān)閉連接時(shí),請(qǐng)求便告知處理完成。定義一個(gè)子進(jìn)程最多處理的請(qǐng)求數(shù),達(dá)到這個(gè)值,進(jìn)程自動(dòng)退出。 一、SAPI比較 1. SAPI 服務(wù)器應(yīng)用程序編程接口,就是服務(wù)器與編程語(yǔ)言之間交互的接口。比如Linux命令行執(zhí)行一段PHP代碼,其實(shí)是Linux shell通過(guò)PHP SAPI傳入一組參數(shù),zend...

    CoderBear 評(píng)論0 收藏0
  • PHP 運(yùn)行模式

    摘要:接下來(lái)會(huì)對(duì)其中五個(gè)比較常見(jiàn)的運(yùn)行模式進(jìn)行說(shuō)明。模式是目前主流的服務(wù)運(yùn)行模式,擁有高效可靠的性能,推薦大家使用。由于微軟的排他性,只能運(yùn)行于環(huán)境。 SAPI 這里所說(shuō)的 PHP 運(yùn)行模式, 其實(shí)指的是 SAPI (Server Application Programming Interface,服務(wù)端應(yīng)用編程端口 )。SAPI 為 PHP 提供了一個(gè)和外部通信的接口, PHP 就是通過(guò)這...

    OnlyMyRailgun 評(píng)論0 收藏0
  • PHP生命周期

    摘要:的啟動(dòng)和終止請(qǐng)求之前的開(kāi)始階段模塊初始化階段。的生命周期單進(jìn)程生命周期多進(jìn)程生命周期多線程的生命周期是一種比較特殊的,容許你在語(yǔ)言中調(diào)用提供的函數(shù)。不太了解,明天看一下綜述理一下的生命周期,以及整個(gè)執(zhí)行過(guò)程。 PHP的架構(gòu)圖 showImg(https://segmentfault.com/img/remote/1460000013321599?w=514&h=525); SAPI S...

    sf190404 評(píng)論0 收藏0
  • PHP7源碼分析】PHP中$_POST揭秘

    摘要:和進(jìn)程的啟動(dòng)過(guò)程類(lèi)似,啟動(dòng)過(guò)程有種進(jìn)程角色啟動(dòng)進(jìn)程進(jìn)程和進(jìn)程。直到請(qǐng)求到來(lái),將連接賦值給對(duì)象的字段。注當(dāng)進(jìn)程執(zhí)行完后會(huì)再次調(diào)用函數(shù),準(zhǔn)備監(jiān)聽(tīng)新的請(qǐng)求。當(dāng)讀取到的時(shí),會(huì)調(diào)用函數(shù)對(duì)進(jìn)行解析,將中的以及存儲(chǔ)到結(jié)構(gòu)體中。 運(yùn)營(yíng)研發(fā)團(tuán)隊(duì) 季偉濱 一、前言 前幾天的工作中,需要通過(guò)curl做一次接口測(cè)試。讓我意外的是,通過(guò)$_POST竟然無(wú)法獲取到Content-Type是application...

    sf190404 評(píng)論0 收藏0
  • PHP工作原理和生命周期

    摘要:的工作原理和生命周期是一門(mén)適用于開(kāi)發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說(shuō)是一個(gè)用語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。無(wú)論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運(yùn)行。 PHP的工作原理和生命周期 php是一門(mén)適用于web開(kāi)發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說(shuō)是一個(gè)用C語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。那么,php是如何工作的呢?它的生命周期是怎么樣的呢? 表層分析 php是以請(qǐng)求/響應(yīng)為周期運(yùn)行服務(wù)端應(yīng)用...

    happyhuangjinjin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<