phpfpm與apache
1. 如何啟用 Apache 的 php-FPM 多實例
php-fpm的兩種進程管理模式
php-fpm的進程數也是可以根據設置分為動態和靜態的。
一種是直接開啟指定數量的php-fpm進程,不再增加或者減少;
另一種則是開始的時候開啟一定數量的php-fpm進程,當請求量變大的時候,動態的增加php-fpm進程數到上限,當空閑的時候自動釋放空閑的進程數到一個下限。
這兩種不同的執行方式,可以根據伺服器的實際需求來進行調整。
這里先說一下涉及到這個的幾個參數吧,他們分別是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。
pm表示使用那種方式,有兩個值可以選擇,就是static(靜態)或者dynamic(動態)。你也可以到後盾人去看看相關的程序視頻,還有一流的技術人員幫助您
2. apache+php 與 nginx+php,哪個好
apache是通過mod_php來解析php nginx是通過php-fpm(fast-cgi)來解析php
1. PHP 解釋器是否嵌入 Web 伺服器進程內部執行
mod_php 通過嵌入 PHP 解釋器到 Apache 進程中,只能與 Apache 配合使用,而 cgi 和 fast-cgi 以獨立的進程的形式出現,只要對應的Web伺服器實現 cgi 或者 fast-cgi 協議,就能夠處理 PHP 請求。
mod_php 這種嵌入的方式最大的弊端就是內存佔用大,不論是否用到 PHP 解釋器都會將其載入到內存中,典型的就是處理CSS、JS之類的靜態文件是完全沒有必要載入解釋器。
2. 單個進程處理的請求數量
mod_php 和 fast-cgi 的模式在每個進程的生命周期內能夠處理多個請求(fast-cgi可以根據需要來調整進程的多少),而 cgi 的模式處理一個請求就馬上銷毀進程,在高並發的場景下 cgi 的性能非常糟糕。
每一個Web請求PHP都必須重新解析php.ini、重新載入全部dll擴展並重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發生一次
綜上,如果對性能有極高的要求,可以將靜態請求和動態請求分開,這時 Nginx + php-fpm 是比較好的選擇。
PS: cgi、fastcgi 通常指 Web 伺服器與解釋器通信的協議規范,而 php-fpm 是 fastcgi 協議的一個實現。
3. NGINX+PHP(FASTCGI)好,還是NGINX+APACHE+PHP好
單機純php環境(linux),越是簡單的組合,理論上是越高率。
nginx + php-fpm 在linux是最高率的,負載最高效的。
而nginx + apache + php,通常是出於某種需求,才這樣組合的。
第一,是你的單機里有多種環境同時環行,如php,java這樣的等,需要nginx +(tomcat,apache)這樣的組合。
第二,通常是反向代理,集群,負載均衡等,可以nginx + (nginx+php )* n 或 nginx + (apache + php) * n
第三,可能php應用開發時,用到了某些apache特性,不能簡單脫離apache
第四,當php應用,通常比較耗時,而且要求對每次請求比較嚴格,一定要成功返回,apache +
mod這種組合,相對可以保證成功返回(超時值可以簡單設定)。而nginx +
php-fpm,優於它專注於高吞吐量,必然對每次請求=》返回,都是優化地處理,輕易處理,對於某些耗時的請求,容易超時(通種是30-60秒的設
定),返回就丟失了。正所謂有得就有失。
4. php+apache 和 php+nginx的區別
apache是通過mod_php來解析php nginx是通過php-fpm(fast-cgi)來解析php
1. PHP 解釋器是否嵌入 Web 伺服器進程內部執行
mod_php 通過嵌入 PHP 解釋器到 Apache 進程中,只能專與屬 Apache 配合使用,而 cgi 和 fast-cgi 以獨立的進程的形式出現,只要對應的Web伺服器實現 cgi 或者 fast-cgi 協議,就能夠處理 PHP 請求。
mod_php 這種嵌入的方式最大的弊端就是內存佔用大,不論是否用到 PHP 解釋器都會將其載入到內存中,典型的就是處理CSS、JS之類的靜態文件是完全沒有必要載入解釋器。我還是比較推薦你去後盾人上面看看裡面有很多關於這類php之類的教學講解視頻哦你可以去看看
5. Nginx 和 Apache 各有什麼優缺點
這個太長了,挑幾個重點說一下:
apache優點:
1、守護進程相對穩定,重連機製做得好
2、跟php交互基本用mole,在php上不用配置太多參數
3、相對nginx,重寫(rewrite)支持更好
4、採用mole,可拓展性更強,可以在任一階段插入鉤子增加靈活性。
apache缺點:
1、由於使用mole形式載入,導致整個項目比較重
2、同步阻塞模型,容易導致進程阻塞無法正常訪問
3、新加入的模型event據傳性能相當不錯,但目前官方稱仍屬於調試階段,並不建議在生產環境使用。
nginx優點:
1、非同步io處理模型,可以支持更高的並發
2、整體是個輕框架,反向代理一級棒(負載均衡)
3、採用php-fpm fastcgi模式連接php,負載量可以更大
nginx缺點:
1、守護進程由於給php-fpm做了,所以非常受限於php-fpm。一個輸入參數可能會導致整個程序運行不下去
2、php-fpm要額外配置,排查問題多了一個環境需要排查
3、nginx可以執行rewrite,但性能沒有apache那麼好
6. NGINX+PHP好,還是NGINX+APACHE+PHP好
NGINX+APACHE+PHP會更好,因為可襲以充分利用NGINX的「反向代理」技術。將靜態文件由NGINX處理,動態文件(PHP)由APACHE處理,這是最高效的處理方式。
但是,一般網站都不需要這么做,因為沒有高並發的情況下,這樣做並不能體現非常大的優勢。
如果是商城,比較注重速度的,就使用NGINX+PHP;如果是政府網站等,比較注重穩定性的,就使用APACHE+PHP。
當然,如果不嫌麻煩,完全可以搭建NGINX+APACHE+PHP的環境。
7. php-fpm 可以用apache嗎
我來後盾網學習是自己在網上查到的,一開始也是有顧慮的,害怕自己學不好,但是來到這學習之後這些顧慮都沒有了,因為這里的老師教的非常好,非常認真,平時有不懂的問題時,老師會細心的為我們解答,而且畢業後班主任老師會一直關心我的就業情況,每天都在為我推薦就業單位,所以我現在真的很感謝後盾網的所有老師,讓我學到了很好的知識並找到了一份高薪工作,也希望後盾網越辦越好
8. PHP的apache2handler和PHP-FPM 運行模式的區別是什麼
nginx和php是通過fastcgi通訊的,是有兩個獨立的進程
apache則把php嵌入進來
你下次可以去後盾人學習視頻非常多質量好視頻都是一線講師親自錄制的,含金量高
9. 搭建php平台,是使用nginx+ php5-fpm,還是nginx+apache2平台
我個人用nginx+ php5-fpm
10. php-fpm比php成為apache模塊好在哪
概述
寫這篇文章的是因為今天要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
總結
內容相對抽象,理解的不深,記錄下留作以後參考~:)