真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于php的運(yùn)行模式介紹-創(chuàng)新互聯(lián)

php的運(yùn)行模式有哪些?為了大家讓大家更加了解php的運(yùn)行模式,小編給大家總結(jié)了以下內(nèi)容,一起往下看吧。關(guān)于php的運(yùn)行模式介紹

成都創(chuàng)新互聯(lián)公司成立十余年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名注冊(cè)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

PHP的運(yùn)行模式:

PHP兩種運(yùn)行模式是WEB模式、CLI模式。無(wú)論哪種模式,PHP工作原理都是一樣的,作為一種SAPI運(yùn)行。

1、當(dāng)我們?cè)诮K端敲入php這個(gè)命令的時(shí)候,它使用的是CLI。

它就像一個(gè)web服務(wù)器一樣來(lái)支持php完成這個(gè)請(qǐng)求,請(qǐng)求完成后再重新把控制權(quán)交給終端。

2、當(dāng)使用Apache或者別web服務(wù)器作為宿主時(shí),當(dāng)一個(gè)請(qǐng)求到來(lái)時(shí),PHP會(huì)來(lái)支持完成這個(gè)請(qǐng)求。一般有:

  • 多進(jìn)程(通常編譯為apache的模塊來(lái)處理PHP請(qǐng)求)

  • 多線程模式

簡(jiǎn)要的執(zhí)行過(guò)程:

1、PHP是隨著Apache的啟動(dòng)而運(yùn)行的;

2、PHP通過(guò)mod_php5.so模塊和Apache相連(具體說(shuō)來(lái)是SAPI,即服務(wù)器應(yīng)用程序編程接口);

3、PHP總共有三個(gè)模塊:內(nèi)核、Zend引擎、以及擴(kuò)展層;

4、PHP內(nèi)核用來(lái)處理請(qǐng)求、文件流、錯(cuò)誤處理等相關(guān)操作;

5、Zend引擎(ZE)用以將源文件轉(zhuǎn)換成機(jī)器語(yǔ)言,然后在虛擬機(jī)上運(yùn)行它;

6、擴(kuò)展層是一組函數(shù)、類庫(kù)和流,PHP使用它們來(lái)執(zhí)行一些特定的操作。比如,我們需要MySQL擴(kuò)展來(lái)連接MySQL數(shù)據(jù)庫(kù);

7、當(dāng)ZE執(zhí)行程序時(shí)可能會(huì)需要連接若干擴(kuò)展,這時(shí)ZE將控制權(quán)交給擴(kuò)展,等處理完特定任務(wù)后再返還;

8、最后,ZE將程序運(yùn)行結(jié)果返回給PHP內(nèi)核,它再將結(jié)果傳送給SAPI層,最終輸出到瀏覽器上。

運(yùn)行PHP的幾個(gè)階段:

SAPI運(yùn)行PHP都經(jīng)過(guò)下面幾個(gè)階段:

1、模塊初始化階段(Module init)     :

即調(diào)用每個(gè)擴(kuò)展源碼中的的PHP_MINIT_FUNCTION中的方法初始化模塊,進(jìn)行一些模塊所需變量的申請(qǐng),內(nèi)存分配等。

2、請(qǐng)求初始化階段(Request init)  :

即接受到客戶端的請(qǐng)求后調(diào)用每個(gè)擴(kuò)展的PHP_RINIT_FUNCTION中的方法,初始化PHP腳本的執(zhí)行環(huán)境。

3、執(zhí)行PHP腳本

4、請(qǐng)求結(jié)束(Request Shutdown) :

這時(shí)候調(diào)用每個(gè)擴(kuò)展的PHP_RSHUTDOWN_FUNCTION方法清理請(qǐng)求現(xiàn)場(chǎng),并且ZE開始回收變量和內(nèi)存。

5、關(guān)閉模塊(Module shutdown)     :

Web服務(wù)器退出或者命令行腳本執(zhí)行完畢退出會(huì)調(diào)用擴(kuò)展源碼中的PHP_MSHUTDOWN_FUNCTION 方法

各種情況下的SAPI生命周期

1. 單進(jìn)程SAPI生命周期。(CGI)

CLI/CGI模式的PHP屬于單進(jìn)程的SAPI模式。這類的請(qǐng)求在處理一次請(qǐng)求后就關(guān)閉。也就是說(shuō)每次請(qǐng)求都會(huì)重復(fù)這幾個(gè)環(huán)節(jié): 開始 - 請(qǐng)求開始 - 請(qǐng)求關(guān)閉 - 結(jié)束 ??梢钥吹綌U(kuò)展的初始化花費(fèi)了很多資源。

2. 多進(jìn)程SAPI生命周期。(MPM的perfork方式)

通常PHP是編譯為apache的一個(gè)模塊來(lái)處理PHP請(qǐng)求(mod_php)。Apache一般會(huì)采用多進(jìn)程模式, Apache啟動(dòng)后會(huì)fork出多個(gè)子進(jìn)程(apache里可以指定開始fork出來(lái)的進(jìn)程數(shù))。每個(gè)進(jìn)程的內(nèi)存空間獨(dú)立,每個(gè)子進(jìn)程剛被fock出來(lái)都會(huì)經(jīng)過(guò)開始和結(jié)束環(huán)節(jié)。

關(guān)于php的運(yùn)行模式介紹

3. 多線程的SAPI生命周期。(FastCGI或者M(jìn)PM的work方式里的單個(gè)進(jìn)程)

多線程模式和多進(jìn)程中的某個(gè)進(jìn)程類似,在這種模式下,只有一個(gè)服務(wù)器進(jìn)程在運(yùn)行著,但會(huì)同時(shí)運(yùn)行很多線程,這樣可以減少一些資源開銷,向Module init和Module shutdown就只需要運(yùn)行一遍就行了,一些全局變量也只需要初始化一次,因?yàn)榫€程獨(dú)具的特質(zhì),使得各個(gè)請(qǐng)求之間方便的共享一些數(shù)據(jù)成為可能。

關(guān)于php的運(yùn)行模式介紹

看完上訴內(nèi)容,你們對(duì)關(guān)于php的運(yùn)行模式介紹大概了解了嗎?如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道哦!


文章名稱:關(guān)于php的運(yùn)行模式介紹-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://weahome.cn/article/gcose.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部