PHP5.4或引入PHP-FPM nginx運行PHP更輕松
前面我曾介紹過Nginx + PHP-FPM + APC=絕妙的組合,最近有消息稱,PHP5.4將很有可能把PHP-FPM ( PHP FastCGI進程管理器 )補丁包含在內核里。這個新聞對于在nginx服務器平臺上運行PHP的人們來說是一個極大地驚喜?;蛟S你會有這樣的疑問:“PHP-FPM是什么東西?我們為什么要關注它?”
PHP-FPM是為PHP內核編寫的補丁,用來根據需要處理FastCGI進程的啟動,停止以及重啟。這是非常關鍵的功能,因為nginx只能通過FastCGI實現同PHP的接口。nginx不能像Apache那樣把所有的PHP環境加載到自身。nginx通過FastCGI運行PHP比Apache包含PHP環境有明顯的優勢:
◆較低的內存占用率(因為nginx單獨運行時不用加載整個PHP環境)。
◆輕松地管理用戶權限( 因為PHP可以在你的服務器進程中管理不同的用戶)。
◆當PHP崩潰時,nginx可以照常運行。
它的缺點是,相比之下需要安裝及設置mod_php,nginx,PHP和FastCGI。在過去,這種安裝工作需要從LightTPD工程中增選spawn-fcgi腳本,然后使用它啟動FastCGI進程。可是這種安裝存在一些問題:它很脆弱(當進程停止之后可能無法正常重啟)而且這種安裝方法非常繁瑣。安裝并配置好nginx之后你還需要下載LightTPD,針對性地設置腳本,將其設置為自動啟動,然后保障這些同時正常地運行。如果你習慣于“拿來主義”,開箱即用mod_php,那么也許會讓你確信nginx是個劣質品,尤其是當你剛剛升級了服務器替換了原來的精簡的平臺的時候。
使用PHP-FPM。這個補丁會把FastCGI進程管理功能嵌入到PHP中。所以當你使用FPM補丁編譯PHP并且選定了enalbe-fpm選項的時候,nginx會根據需要控制PHP進程的啟動和停止。這樣就省去了以前繁瑣的配置步驟了。當然,對于喜歡省事兒的網站開發人員來說手動配置補丁和編譯PHP代碼還是有點繁瑣?,F在我要告訴大家此新聞給我們帶來的驚喜:PHP5.4將會把FPM補丁直接包含到PHP工程的內核里面!
這意味著你只需要下載PHP就能編譯了。你不再需要設置enalbe-fpm,不再需要考慮如何與nginx同步的問題,還有努力采取與Apache相同設置的問題。
也許你曾經嘗試過在nginx平臺上運行PHP,而且對其繁破口大罵過。我要向你鄭重建議去試一下PHP-FPM。雖然它現在仍然存在一點問題,但是它時時刻刻在進步的。在此期間,也許你能體會到同在街頭玩耍的小孩子突然得到一個超酷的玩具一般的驚喜。
【編輯推薦】