本篇文章帶大家詳細(xì)了解一下PHP-FPM,介紹一下PHP-FPM的安裝和全局配置。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。
【推薦學(xué)習(xí):《PHP視頻教程》】
作用
PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 進(jìn)程管理器,用于管理PHP 進(jìn)程池的軟件,用于接受web服務(wù)器的請(qǐng)求。
PHP-FPM提供了更好的PHP進(jìn)程管理方式,可以有效控制內(nèi)存和進(jìn)程、可以平滑重載PHP配置。
(1). 為什么會(huì)出現(xiàn)php-fpm
fpm的出現(xiàn)全部因?yàn)閜hp-fastcgi出現(xiàn)。為了很好的管理php-fastcgi而實(shí)現(xiàn)的一個(gè)程序
(2). 什么是php-fastcgi
php-fastcgi 只是一個(gè)cgi程序,只會(huì)解析php請(qǐng)求,并且返回結(jié)果,不會(huì)管理(因此才出現(xiàn)的php-fpm)。
(3)為什么不叫php-cgi
其實(shí)在php-fastcgi出現(xiàn)之前是有一個(gè)php-cgi存在的,只是它的執(zhí)行效率低下,因此被php-fastcgi取代。
(4)那fastcgi和cgi有什么區(qū)別呢?
親們,這區(qū)別就大了,當(dāng)一個(gè)服務(wù)web-server(nginx)分發(fā)過(guò)來(lái)請(qǐng)求的時(shí)候,通過(guò)匹配后綴知道該請(qǐng)求是個(gè)動(dòng)態(tài)的php請(qǐng)求,會(huì)把這個(gè)請(qǐng)求轉(zhuǎn)給php。
在cgi的年代,思想比較保守,總是一個(gè)請(qǐng)求過(guò)來(lái)后,去讀取php.ini里的基礎(chǔ)配置信息,初始化執(zhí)行環(huán)境,每次都要不停的去創(chuàng)建一個(gè)進(jìn)程,讀取配置,初始化環(huán)境,返回?cái)?shù)據(jù),退出進(jìn)程,久而久之,啟動(dòng)進(jìn)程的工作變的乏味無(wú)趣特別累。
當(dāng)php來(lái)到了5的時(shí)代,大家對(duì)這種工作方式特別反感,想偷懶的人就拼命的想,我可不可以讓cgi一次啟動(dòng)一個(gè)主進(jìn)程(master),讓他只讀取一次配置,然后在啟動(dòng)多個(gè)工作進(jìn)程(worker),當(dāng)一個(gè)請(qǐng)求來(lái)的時(shí)候,通過(guò)master傳遞給worker這樣就可以避免重復(fù)勞動(dòng)了。于是就產(chǎn)生了fastcgi。
(5)fastcgi這么好,啟動(dòng)的worker用完怎么辦?
當(dāng)worker不夠的時(shí)候,master會(huì)通過(guò)配置里的信息,動(dòng)態(tài)啟動(dòng)worker,等空閑的時(shí)候可以收回worker
(6)到現(xiàn)在還是沒(méi)明白php-fpm 是個(gè)什么東西?
就是來(lái)管理啟動(dòng)一個(gè)master進(jìn)程和多個(gè)worker進(jìn)程的程序.
PHP-FPM 會(huì)創(chuàng)建一個(gè)主進(jìn)程,控制何時(shí)以及如何將HTTP請(qǐng)求轉(zhuǎn)發(fā)給一個(gè)或多個(gè)子進(jìn)程處理。PHP-FPM主進(jìn)程還控制著什
么時(shí)候創(chuàng)建(處理Web應(yīng)用