《PHP學(xué)習(xí):mod_php、FastCGI、PHP-FPM等PHP運(yùn)行方式對(duì)比》要點(diǎn):
本文介紹了PHP學(xué)習(xí):mod_php、FastCGI、PHP-FPM等PHP運(yùn)行方式對(duì)比,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
概述PHP學(xué)習(xí)
寫(xiě)這篇文章的是因?yàn)楸救找猆buntu下搭建LNMP環(huán)境,Nginx使用的是PHP-FPM,所以對(duì)Web服務(wù)器與PHP解釋器的交互方式做了個(gè)整理.PHP學(xué)習(xí)
眾所周知,PHP是跨平臺(tái)、跨服務(wù)器的語(yǔ)言,這也是它如此流行的原因之一.但是,很少有人知道PHP解釋器可以以分歧的方式運(yùn)行在Web服務(wù)器中.PHP最常用的方式是以模塊的方式(mod_php)運(yùn)行在Apache中,也是Apache運(yùn)行PHP的默認(rèn)方式.但是在Nginx中,Nginx又使用的是PHP-FPM.PHP學(xué)習(xí)
這篇文章就對(duì)這些概念做個(gè)介紹,如有紕謬的地方,請(qǐng)多多批評(píng)指教.PHP學(xué)習(xí)
什么是PHP處置器(PHP handlers)?PHP學(xué)習(xí)
首先必要記住的是,任何一種Web服務(wù)器(Apache、Nginx等)都是被設(shè)計(jì)成向用戶發(fā)送html、圖片等靜態(tài)資源的,Web服務(wù)器自身并不能解釋任何動(dòng)態(tài)腳本(PHP、Python等).PHP處理器就是用來(lái)解釋W(xué)eb應(yīng)用中的PHP代碼,并將它解釋為HTML或其他靜態(tài)資源,然后將解析的結(jié)果傳給Web服務(wù)器,最后再由Web服務(wù)器發(fā)送給用戶.大多數(shù)的Web服務(wù)器都不能解析PHP代碼,因此它必要一個(gè)能解析PHP代碼的程序,這就是PHP處理器.PHP學(xué)習(xí)
mod_phpPHP學(xué)習(xí)
首先,來(lái)看一下以Apache模塊方式運(yùn)行PHP.mod_php現(xiàn)在在Linux各版本的軟件倉(cāng)庫(kù)里都有,因此很容易被安裝.PHP學(xué)習(xí)
當(dāng)PHP以模塊的方式運(yùn)行在Apache中時(shí),PHP解釋器被“內(nèi)嵌”在Apache的進(jìn)程里.Apache不會(huì)調(diào)用任何外部的PHP進(jìn)程,因此這種方式使Apache與PHP能更好的通信.然則,當(dāng)以這種方式運(yùn)行PHP的時(shí)候,哪怕Apache提供的僅僅是靜態(tài)的資源(如HTML),Apache的每個(gè)子進(jìn)程也都會(huì)載入 mod_php,導(dǎo)致了比正常情況下更多的內(nèi)存開(kāi)銷(xiāo).PHP學(xué)習(xí)
以這種方式運(yùn)行的另一個(gè)缺點(diǎn)是,它僅能與Apache一起配合工作.另外,在小型的VPS和大型的網(wǎng)站中,這種方式也不合適,因?yàn)榇笮途W(wǎng)站可能有很多靜態(tài)資源,而這些靜態(tài)資源是不必要PHP程序解釋的.PHP學(xué)習(xí)
優(yōu)點(diǎn):
1.易于安裝和更新
2.容配置
缺點(diǎn):
1.僅能與Apache一起工作
2.增加了Apache子進(jìn)程內(nèi)存開(kāi)銷(xiāo)
3.當(dāng)更改php.ini文件后,必要重啟ApachePHP學(xué)習(xí)
FastCGIPHP學(xué)習(xí)
FastCGI是交互程序與Web服務(wù)器通用的協(xié)議接口,是早期CGI(Common Gateway Interface)的一個(gè)變種.相對(duì)于CGI來(lái)說(shuō),FastCGI減少了和Web服務(wù)器交互的開(kāi)銷(xiāo),同時(shí)一次可以處理更多的哀求.PHP學(xué)習(xí)
Apache可以以mod_fcgid的形式使用FastCGI.其他Web服務(wù)器,如lighttpd, nginx, Cherokee,甚至微軟的IIS也都能使用FastCGI.使用FastCGI,可以同時(shí)設(shè)置多個(gè)版本的PHP,這在某些情況下非常有用.PHP學(xué)習(xí)
FastCGI還利用suexec來(lái)支持不同的用戶用自己的PHP的實(shí)例.這個(gè)特性對(duì)于在共享環(huán)境下提高平安性尤其重要.FastCGI在保證性能的同時(shí),也減少了Web服務(wù)器的內(nèi)存開(kāi)銷(xiāo).PHP學(xué)習(xí)
優(yōu)點(diǎn):
1.兼容多數(shù)Web服務(wù)器
2.比mod_php占內(nèi)存小
3.更多的配置項(xiàng),包含多版本PHP和suexec
缺點(diǎn)
1.配置復(fù)雜
2.不被大家所熟知PHP學(xué)習(xí)
PHP-FPM(FastCGI Process Manager)PHP學(xué)習(xí)
PHP-FPM是Web服務(wù)器使用PHP的一種最新方式,也是PHP FastCGI的另外一種實(shí)現(xiàn).PHP-FPM對(duì)于運(yùn)行在小型VPS和多服務(wù)器上的Web應(yīng)用非常應(yīng)用.同時(shí),它也可以被兼容FastCGI的任何Web服務(wù)器所使用.PHP學(xué)習(xí)
PHP-FPM使管理員能夠優(yōu)雅地停止和啟動(dòng)PHP工作進(jìn)程而不丟失任何查詢.這允許我們逐步更新配置和二進(jìn)制,而不會(huì)損失任何查詢.它還允許我們?cè)诎l(fā)生任何不測(cè)破壞的情況下,緊急重啟進(jìn)程.PHP學(xué)習(xí)
優(yōu)點(diǎn):
1.兼容多數(shù)Web服務(wù)器
2.比mod_php占內(nèi)存小
3.更多的配置項(xiàng),包含多版本PHP和suexec
缺點(diǎn)
1.配置復(fù)雜
2.不被大家所熟知PHP學(xué)習(xí)
彌補(bǔ):Apache運(yùn)行PHP的四種方式PHP學(xué)習(xí)
mod_php (DSO,Dynamic Shared Object)
CGI
suPHP
FastCGIPHP學(xué)習(xí)
總結(jié)PHP學(xué)習(xí)
內(nèi)容相對(duì)抽象,懂得的不深,記錄下留作以后參考~:)PHP學(xué)習(xí)
《PHP學(xué)習(xí):mod_php、FastCGI、PHP-FPM等PHP運(yùn)行方式對(duì)比》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP學(xué)習(xí):mod_php、FastCGI、PHP-FPM等PHP運(yùn)行方式對(duì)比》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9989.html