国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

mod_php、FastCGI、PHP-FPM等PHP運行方式對比

2024-05-04 23:37:09
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了mod_php、FastCGI、PHP-FPM等PHP運行方式對比,本文講解了什么是PHP處理器(PHP handlers)、mod_php的優缺點、FastCGI的優缺點、PHP-FPM(FastCGI Process Manager)的優缺點等內容,需要的朋友可以參考下
 

概述

寫這篇文章的是因為今天要Ubuntu下搭建LNMP環境,Nginx使用的是PHP-FPM,所以對Web服務器與PHP解釋器的交互方式做了個整理。

眾所周知,PHP是跨平臺、跨服務器的語言,這也是它如此流行的原因之一。但是,很少有人知道PHP解釋器可以以不同的方式運行在Web服務器中。PHP最常用的方式是以模塊的方式(mod_php)運行在Apache中,也是Apache運行PHP的默認方式。但是在Nginx中,Nginx又使用的是PHP-FPM。

這篇文章就對這些概念做個介紹,如有不對的地方,請多多批評指教。

什么是PHP處理器(PHP handlers)?

首先需要記住的是,任何一種Web服務器(Apache、Nginx等)都是被設計成向用戶發送html、圖片等靜態資源的,Web服務器自身并不能解釋任何動態腳本(PHP、Python等)。PHP處理器就是用來解釋Web應用中的PHP代碼,并將它解釋為HTML或其他靜態資源,然后將解析的結果傳給Web服務器,最后再由Web服務器發送給用戶。大多數的Web服務器都不能解析PHP代碼,因此它需要一個能解析PHP代碼的程序,這就是PHP處理器。

mod_php

首先,來看一下以Apache模塊方式運行PHP。mod_php現在在Linux各版本的軟件倉庫里都有,因此很容易被安裝。

當PHP以模塊的方式運行在Apache中時,PHP解釋器被“內嵌”在Apache的進程里。Apache不會調用任何外部的PHP進程,因此這種方式使Apache與PHP能更好的通信。但是,當以這種方式運行PHP的時候,哪怕Apache提供的僅僅是靜態的資源(如HTML),Apache的每個子進程也都會載入 mod_php,導致了比正常情況下更多的內存開銷。

以這種方式運行的另一個缺點是,它僅能與Apache一起配合工作。另外,在小型的VPS和大型的網站中,這種方式也不合適,因為大型網站可能有很多靜態資源,而這些靜態資源是不需要PHP程序解釋的。

優點:
1.易于安裝和更新
2.容配置
缺點:
1.僅能與Apache一起工作
2.增加了Apache子進程內存開銷
3.當更改php.ini文件后,需要重啟Apache

FastCGI

FastCGI是交互程序與Web服務器通用的協議接口,是早期CGI(Common Gateway Interface)的一個變種。相對于CGI來說,FastCGI減少了和Web服務器交互的開銷,同時一次可以處理更多的請求。

Apache可以以mod_fcgid的形式使用FastCGI。其他Web服務器,如lighttpd, nginx, Cherokee,甚至微軟的IIS也都能使用FastCGI。使用FastCGI,可以同時設置多個版本的PHP,這在某些情況下非常有用。

FastCGI還利用suexec來支持不同的用戶用自己的PHP的實例。這個特性對于在共享環境下提高安全性尤其重要。FastCGI在保證性能的同時,也減少了Web服務器的內存開銷。

優點:
1.兼容多數Web服務器
2.比mod_php占內存小
3.更多的配置項,包括多版本PHP和suexec
缺點
1.配置復雜
2.不被大家所熟知

PHP-FPM(FastCGI Process Manager)

PHP-FPM是Web服務器使用PHP的一種最新方式,也是PHP FastCGI的另外一種實現。PHP-FPM對于運行在小型VPS和多服務器上的Web應用非常應用。同時,它也可以被兼容FastCGI的任何Web服務器所使用。

PHP-FPM使管理員能夠優雅地停止和啟動PHP工作進程而不丟失任何查詢。這允許我們逐步更新配置和二進制,而不會損失任何查詢。它還允許我們在發生任何意外破壞的情況下,緊急重啟進程。

優點:
1.兼容多數Web服務器
2.比mod_php占內存小
3.更多的配置項,包括多版本PHP和suexec
缺點
1.配置復雜
2.不被大家所熟知

補充:Apache運行PHP的四種方式

mod_php (DSO,Dynamic Shared Object)
CGI
suPHP
FastCGI

總結

內容相對抽象,理解的不深,記錄下留作以后參考~:)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马关县| 蒲城县| 徐汇区| 岳阳市| 天台县| 内乡县| 襄垣县| 九龙县| 茂名市| 盐边县| 保山市| 阜城县| 海原县| 荆门市| 南华县| 兴文县| 韩城市| 高密市| 侯马市| 威远县| 常山县| 叙永县| 玛沁县| 丰镇市| 方城县| 云南省| 阿合奇县| 徐州市| 抚宁县| 公主岭市| 泸水县| 广州市| 九龙县| 泰宁县| 吉安县| 和田县| 宁晋县| 大渡口区| 手游| 广平县| 儋州市|