成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

venmos / 2235人閱讀

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

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

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

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

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

接下來主要是討論下我們常見的 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 startupexecute script、request shutdown、module shutdown,其執(zhí)行流程比較簡(jiǎn)單,關(guān)鍵的處理過程如下:

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類似的一種應(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)程的生命周期如下圖:

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/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通過PHP SAPI傳入一組參數(shù),zend...

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

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

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

    摘要:的啟動(dòng)和終止請(qǐng)求之前的開始階段模塊初始化階段。的生命周期單進(jìn)程生命周期多進(jìn)程生命周期多線程的生命周期是一種比較特殊的,容許你在語(yǔ)言中調(diào)用提供的函數(shù)。不太了解,明天看一下綜述理一下的生命周期,以及整個(gè)執(zhí)行過程。 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)過程類似,啟動(dòng)過程有種進(jìn)程角色啟動(dòng)進(jìn)程進(jìn)程和進(jìn)程。直到請(qǐng)求到來,將連接賦值給對(duì)象的字段。注當(dāng)進(jìn)程執(zhí)行完后會(huì)再次調(diào)用函數(shù),準(zhǔn)備監(jiān)聽新的請(qǐng)求。當(dāng)讀取到的時(shí),會(huì)調(diào)用函數(shù)對(duì)進(jìn)行解析,將中的以及存儲(chǔ)到結(jié)構(gòu)體中。 運(yùn)營(yíng)研發(fā)團(tuán)隊(duì) 季偉濱 一、前言 前幾天的工作中,需要通過curl做一次接口測(cè)試。讓我意外的是,通過$_POST竟然無(wú)法獲取到Content-Type是application...

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

    摘要:的工作原理和生命周期是一門適用于開發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說是一個(gè)用語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。無(wú)論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運(yùn)行。 PHP的工作原理和生命周期 php是一門適用于web開發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說是一個(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元查看
<