什么是php-fpm(進(jìn)程管理器)

今天學(xué)習(xí)了php-fpm相關(guān)內(nèi)容浑侥,看了一篇博客姊舵,寫(xiě)得很好,結(jié)合博客內(nèi)容和自己的理解畫(huà)出了以下簡(jiǎn)單的流程圖寓落,以供其他同學(xué)學(xué)習(xí)哈括丁。


php-fpm.jpg

首先,CGI是干嘛的伶选?CGI是為了保證web server傳遞過(guò)來(lái)的數(shù)據(jù)是標(biāo)準(zhǔn)格式的史飞,方便CGI程序的編寫(xiě)者尖昏。

web server(比如說(shuō)nginx)只是內(nèi)容的分發(fā)者。比如构资,如果請(qǐng)求/index.html抽诉,那么web server會(huì)去文件系統(tǒng)中找到這個(gè)文件,發(fā)送給瀏覽器吐绵,這里分發(fā)的是靜態(tài)數(shù)據(jù)迹淌。好了,如果現(xiàn)在請(qǐng)求的是/index.php拦赠,根據(jù)配置文件巍沙,nginx知道這個(gè)不是靜態(tài)文件,需要去找PHP解析器來(lái)處理荷鼠,那么他會(huì)把這個(gè)請(qǐng)求簡(jiǎn)單處理后交給PHP解析器句携。Nginx會(huì)傳哪些數(shù)據(jù)給PHP解析器呢?url要有吧允乐,查詢字符串也得有吧矮嫉,POST數(shù)據(jù)也要有,HTTP header不能少吧牍疏,好的蠢笋,CGI就是規(guī)定要傳哪些數(shù)據(jù)、以什么樣的格式傳遞給后方處理這個(gè)請(qǐng)求的協(xié)議鳞陨。仔細(xì)想想昨寞,你在PHP代碼中使用的用戶從哪里來(lái)的。

當(dāng)web server收到/index.php這個(gè)請(qǐng)求后厦滤,會(huì)啟動(dòng)對(duì)應(yīng)的CGI程序援岩,這里就是PHP的解析器。接下來(lái)PHP解析器會(huì)解析php.ini文件掏导,初始化執(zhí)行環(huán)境享怀,然后處理請(qǐng)求,再以規(guī)定CGI規(guī)定的格式返回處理后的結(jié)果趟咆,退出進(jìn)程添瓷。web server再把結(jié)果返回給瀏覽器。

好了值纱,CGI是個(gè)協(xié)議鳞贷,跟進(jìn)程什么的沒(méi)關(guān)系。那fastcgi又是什么呢虐唠?Fastcgi是用來(lái)提高CGI程序性能的悄晃。

提高性能,那么CGI程序的性能問(wèn)題在哪呢?"PHP解析器會(huì)解析php.ini文件妈橄,初始化執(zhí)行環(huán)境"庶近,就是這里了。標(biāo)準(zhǔn)的CGI對(duì)每個(gè)請(qǐng)求都會(huì)執(zhí)行這些步驟(不閑累熬祢尽鼻种!啟動(dòng)進(jìn)程很累的說(shuō)!)沙热,所以處理每個(gè)時(shí)間的時(shí)間會(huì)比較長(zhǎng)叉钥。這明顯不合理嘛!那么Fastcgi是怎么做的呢篙贸?首先投队,F(xiàn)astcgi會(huì)先啟一個(gè)master,解析配置文件爵川,初始化執(zhí)行環(huán)境敷鸦,然后再啟動(dòng)多個(gè)worker。當(dāng)請(qǐng)求過(guò)來(lái)時(shí)寝贡,master會(huì)傳遞給一個(gè)worker扒披,然后立即可以接受下一個(gè)請(qǐng)求。這樣就避免了重復(fù)的勞動(dòng)圃泡,效率自然是高碟案。而且當(dāng)worker不夠用時(shí),master可以根據(jù)配置預(yù)先啟動(dòng)幾個(gè)worker等著颇蜡;當(dāng)然空閑worker太多時(shí)价说,也會(huì)停掉一些,這樣就提高了性能风秤,也節(jié)約了資源鳖目。這就是fastcgi的對(duì)進(jìn)程的管理。

那PHP-FPM又是什么呢唁情?是一個(gè)實(shí)現(xiàn)了Fastcgi的程序疑苔,被PHP官方收了甫匹。

大家都知道甸鸟,PHP的解釋器是php-cgi。php-cgi只是個(gè)CGI程序兵迅,他自己本身只能解析請(qǐng)求抢韭,返回結(jié)果,不會(huì)進(jìn)程管理(皇上恍箭,臣妾真的做不到翱坦А!)所以就出現(xiàn)了一些能夠調(diào)度php-cgi進(jìn)程的程序,比如說(shuō)由lighthttpd分離出來(lái)的spawn-fcgi鳍贾。好了PHP-FPM也是這么個(gè)東東鞍匾,在長(zhǎng)時(shí)間的發(fā)展后,逐漸得到了大家的認(rèn)可(要知道骑科,前幾年大家可是抱怨PHP-FPM穩(wěn)定性太差的)橡淑,也越來(lái)越流行。

fastcgi是一個(gè)協(xié)議咆爽,php-fpm實(shí)現(xiàn)了這個(gè)協(xié)議

對(duì)梁棠。

有的說(shuō),php-fpm是fastcgi進(jìn)程的管理器斗埂,用來(lái)管理fastcgi進(jìn)程的

對(duì)符糊。php-fpm的管理對(duì)象是php-cgi。但不能說(shuō)php-fpm是fastcgi進(jìn)程的管理器呛凶,因?yàn)榍懊嬲f(shuō)了fastcgi是個(gè)協(xié)議男娄,似乎沒(méi)有這么個(gè)進(jìn)程存在,就算存在php-fpm也管理不了他(至少目前是)把兔。 有的說(shuō)沪伙,php-fpm是php內(nèi)核的一個(gè)補(bǔ)丁

以前是對(duì)的。因?yàn)樽铋_(kāi)始的時(shí)候php-fpm沒(méi)有包含在PHP內(nèi)核里面县好,要使用這個(gè)功能围橡,需要找到與源碼版本相同的php-fpm對(duì)內(nèi)核打補(bǔ)丁,然后再編譯缕贡。后來(lái)PHP內(nèi)核集成了PHP-FPM之后就方便多了翁授,使用--enalbe-fpm這個(gè)編譯參數(shù)即可。

有的說(shuō)晾咪,修改了php.ini配置文件后收擦,沒(méi)辦法平滑重啟,所以就誕生了php-fpm

是的谍倦,修改php.ini之后塞赂,php-cgi進(jìn)程的確是沒(méi)辦法平滑重啟的。php-fpm對(duì)此的處理機(jī)制是新的worker用新的配置昼蛀,已經(jīng)存在的worker處理完手上的活就可以歇著了宴猾,通過(guò)這種機(jī)制來(lái)平滑過(guò)度。

還有的說(shuō)PHP-CGI是PHP自帶的FastCGI管理器叼旋,那這樣的話干嗎又弄個(gè)php-fpm出

不對(duì)仇哆。php-cgi只是解釋PHP腳本的程序而已。

博客來(lái)源:https://blog.csdn.net/u010785091/article/details/78705690
感謝作者: MHSLZ1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夫植,一起剝皮案震驚了整個(gè)濱河市讹剔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖延欠,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陌兑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡由捎,警方通過(guò)查閱死者的電腦和手機(jī)诀紊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隅俘,“玉大人邻奠,你說(shuō)我怎么就攤上這事∥樱” “怎么了碌宴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蒙畴。 經(jīng)常有香客問(wèn)我贰镣,道長(zhǎng),這世上最難降的妖魔是什么膳凝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任碑隆,我火速辦了婚禮,結(jié)果婚禮上蹬音,老公的妹妹穿的比我還像新娘上煤。我一直安慰自己,他們只是感情好著淆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布劫狠。 她就那樣靜靜地躺著,像睡著了一般永部。 火紅的嫁衣襯著肌膚如雪独泞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天苔埋,我揣著相機(jī)與錄音懦砂,去河邊找鬼。 笑死组橄,一個(gè)胖子當(dāng)著我的面吹牛荞膘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晨炕,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼衫画,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼毫炉!你這毒婦竟也來(lái)了瓮栗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎费奸,沒(méi)想到半個(gè)月后弥激,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡愿阐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年微服,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缨历。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡以蕴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辛孵,到底是詐尸還是另有隱情丛肮,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布魄缚,位于F島的核電站宝与,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冶匹。R本人自食惡果不足惜习劫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嚼隘。 院中可真熱鬧诽里,春花似錦、人聲如沸飞蛹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桩皿。三九已至豌汇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泄隔,已是汗流浹背拒贱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佛嬉,地道東北人逻澳。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像暖呕,于是被迫代替她去往敵國(guó)和親斜做。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容