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

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

workerman程序在PHP中的運(yùn)行模式有哪些

這篇文章給大家分享的是有關(guān)workerman程序在PHP中的運(yùn)行模式有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),黃巖網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:黃巖等地區(qū)。黃巖做網(wǎng)站價(jià)格咨詢:18982081108

我們知道workerman程序需要在php-cli模式下運(yùn)行,也就是命令行模式,這塊我們有必要了解一下。話說PHP當(dāng)下一共有4種運(yùn)行模式,分別是CGI、FastCGI、CLI和Web模塊模式。

CGI

全稱是“通用網(wǎng)關(guān)接口”(CommonGatewayInterface),它可以讓一個(gè)客戶端,從網(wǎng)頁(yè)瀏覽器向執(zhí)行在Web服務(wù)器上的程序請(qǐng)求數(shù)據(jù),描述的是客戶端和這個(gè)程序之間傳輸數(shù)據(jù)的一種標(biāo)準(zhǔn),另外CGI獨(dú)立于任何語(yǔ)言,所以可以用任何一種語(yǔ)言編寫,只要這種語(yǔ)言具有標(biāo)準(zhǔn)輸入、輸出和環(huán)境變量。如php,perl,tcl等。

CGI針對(duì)每個(gè)用戶請(qǐng)求都要開單獨(dú)的子進(jìn)程去維護(hù),所以數(shù)量多的時(shí)候會(huì)出現(xiàn)性能問題,最近幾年很少用。

FastCGI

CGI的升級(jí)版本,F(xiàn)astCGI像是一個(gè)常駐(long-live)型的CGI,它可以一直執(zhí)行著,只要激活后,不會(huì)每次都要花費(fèi)時(shí)間去解析php.ini、重新載入全部dll擴(kuò)展并重初始化全部數(shù)據(jù)結(jié)構(gòu)。

PHP使用PHP-FPM(FastCGIProcessManager),全稱PHPFastCGI進(jìn)程管理器進(jìn)行管理。

FastCGI工作原理

WebServer啟動(dòng)時(shí)載入FastCGI進(jìn)程管理器;

FastCGI進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)CGI解釋器進(jìn)程并等待來(lái)自WebServer的連接;

當(dāng)客戶端請(qǐng)求到達(dá)WebServer時(shí),F(xiàn)astCGI進(jìn)程管理器選擇并連接到一個(gè)CGI解釋器。Webserver將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程php-cgi。

FastCGI子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回WebServer。當(dāng)FastCGI子進(jìn)程關(guān)閉連接時(shí),請(qǐng)求便告處理完成。FastCGI子進(jìn)程接著等待并處理來(lái)自FastCGI進(jìn)程管理器的下一個(gè)連接。

在正常的CGI模式中,這就結(jié)束了,下次還要重新來(lái)過。但是在FastCGI,所有這些都只在進(jìn)程啟動(dòng)時(shí)發(fā)生一次。一個(gè)額外的好處是,持續(xù)數(shù)據(jù)庫(kù)連接(Persistentdatabaseconnection)可以工作。

Cli

PHP-CLI是PHPCommandLineInterface的簡(jiǎn)稱,就是PHP在命令行運(yùn)行的接口,區(qū)別于在Web服務(wù)器上運(yùn)行的PHP環(huán)境(PHP-CGI等)。

我們?cè)贚inux下經(jīng)常使用”php–m”查找PHP安裝了那些擴(kuò)展就是PHP命令行運(yùn)行模式。你可以打入php-h來(lái)看看具體都有什么命令。

在php-cli模式下我們可以直接啟動(dòng)一個(gè)php文件并執(zhí)行,就像workerman中一樣

phpindex.phpstart

要說明的是,php-cli模式并沒有php運(yùn)行超時(shí)的說法。

Module加載

一般是針對(duì)apache而言的,這種方式,他們的共同本質(zhì)都是用LoadModule來(lái)加載phpX_module,就是把php作為apache的一個(gè)子模塊來(lái)運(yùn)行。當(dāng)通過web訪問php文件時(shí),apache就會(huì)調(diào)用phpX_module來(lái)解析php代碼,那么phpX_module是怎么來(lái)將數(shù)據(jù)傳給php解析器來(lái)解析php代碼的呢?答案是通過sapi。

所以,以上的apache調(diào)用php執(zhí)行的過程如下:

apache->httpd->php5_module->sapi->php

apache每接收一個(gè)請(qǐng)求,都會(huì)產(chǎn)生一個(gè)進(jìn)程來(lái)連接php通過sapi來(lái)完成請(qǐng)求,可想而知,如果一旦用戶過多,并發(fā)數(shù)過多,服務(wù)器就會(huì)承受不住了。

而且,把mod_php編進(jìn)apache時(shí),出問題時(shí)很難定位是php的問題還是apache的問題。

小結(jié)

如果要搭建一個(gè)高性能的PHPWEB服務(wù)器,目前最佳的方式是Apache/Nginx+FastCGI+PHP-FPM(+PHP-CGI)方式了,不要再使用Module加載或者CGI方式啦

感謝各位的閱讀!關(guān)于“workerman程序在PHP中的運(yùn)行模式有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


網(wǎng)站名稱:workerman程序在PHP中的運(yùn)行模式有哪些
鏈接分享:http://weahome.cn/article/iehccp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部