12.21 php-fpm的pool 12.22 php-fpm慢執行日誌 12.23 open_basedir 12.24 php-fpm進程管理

12.21 php-fpm的poolphp

php-fpm有一個概念叫pool,就是使用psaux看到的右側的那一列,也就是它的池子,nginx

以下圖,咱們在這裏只定義了一個pool程序員

其實他是支持定義多個池子的,每個池子咱們能夠監聽不一樣的sock,或者不一樣的tcpip,這樣的話若是咱們的nginx有好幾個站點每一個站點均可以使用不一樣pool,這樣作的好處就是其中一個php502了,其餘站點不收影響,(502頗有多是php資源不夠了)若是你全部的網站都使用了同一個池子的話,其中一個網站發生了故障,好比程序員寫的代碼有問題把php資源耗盡了,那麼其餘幾個也會502,因此咱們有必要把網站隔離開來,每一個站點使用單獨的pool。apache

添加多個pool方法:瀏覽器

能夠在如上圖中的文件中繼續添加,如再添加一個叫aming.com的pool就在文件內容後面添加以下一段。服務器

而後咱們檢查錯誤,curl

而後從新加載。tcp

而後咱們看一下pool,能夠看到右側多了一個aming.com的pool。php-fpm

那麼咱們怎麼使用它呢?網站

首先而後,把test.com.conf定義成php-fcgi.sock

而後把另外一個aaa.com.conf定義成aming.sock,(若是裏面沒有這一段那麼就從test.com.conf裏拷貝一下)

這樣兩個網站就隔離開了。

固然php-fpm也是支持include,

而後,以後進入到這個目錄裏,而後把php-fpm.conf裏的www一段剪切到www.conf裏,而後再把php-fpm.conf裏的aming.com一段剪切到裏面。

 

而後咱們檢查錯誤,

而後從新加載。這個效果是和第一種同樣的。

 

12.22 php-fpm慢執行日誌

咱們首先

意思是超過一秒鐘就要記錄日誌(若是在真實場景下咱們建議是兩秒,應該不少腳本執行都會超過一秒),而後放在第二行的地址裏。

而後檢查錯誤從新加載,以後咱們能夠看一下這個目錄裏有沒有生成日誌文件。有的話咱們能夠看看裏面有沒有內容。裏面應該是空的,由於咱們尚未任何超過一秒的php執行的過程,因此咱們須要模擬一個慢執行的php。

那麼咱們就來寫一個腳本,由於php-fcgi是被test.com用的,因此咱們須要在這個站點下作操做。

咱們作一個腳本故意讓它執行休眠2秒

在裏面寫入咱們能夠把它分紅三行

而後咱們運行一下試試(若是沒有任何輸出就說明有錯誤)

裏面有一行咱們把它打開後,也就是改爲on後,咱們就能夠在瀏覽器或者curl裏顯示錯誤。而後咱們再運行,以下圖提示咱們語法錯誤

這裏應該是咱們的sleep.php標點符號寫的是中文的標點,咱們給它改爲英文便可,而後咱們再次運行,能夠看出它執行過程是停頓了兩秒的。

而後咱們在看日誌

如今裏面就會有內容了,以下圖

第二行告訴咱們sleep.php腳本慢了,第三行說是這個腳本的第3行慢了。

咱們能夠看一下這個腳本的第三行是什麼,以下圖正是咱們設定的休眠2秒。

12.23 open_basedir

open_basedir以前咱們也介紹過,若是服務器有多個網站,那麼在php.ini裏定義就不合適了,因此要麼在apache虛擬主機配置文件裏定義,要麼在php-fpm裏定義,那麼咱們能夠針對每個池子定義open_basedir,

定義方法只要在www(也能夠是其餘池子)池子文件里加上,而後另起一行(這裏的網站必定要寫www這個文件對應的網站,上圖並非標準答案),如在加上它。而後檢查錯誤以後從新加載,而後就能夠訪問了。

咱們也能夠看一下它的錯誤日誌,咱們先把改爲off關掉,(正常都是關閉的,由於不能讓別人經過瀏覽器看到錯誤信息)而後咱們定義一下錯誤日誌路徑,(把原來的註釋一下,而後另起一行)

還要定義日誌級別(這裏咱們定義成全部,咱們把原來的註釋一下,而後另起一行)

而後建立一下指定的錯誤日誌路徑文件

而後咱們故意把在www.conf裏定義的後面的網站改爲其餘網站

而後檢查錯誤從新加載,而後訪問一下就生成了錯誤日誌,而後咱們能夠看一下錯誤日誌

12.24 php-fpm進程管理

php-fpm進程管理就是php-fpm配置文件裏,如www.conf裏選中的幾行。

第一行表示你的進程以什麼樣的形式啓動,dynamic是動態,只有是動態的時候下面的所有參數才生效,若是改爲static那麼只有下面一條生效,也就是說啓動的時候就一下生成50個。

dynamic動態時,下面20結尾的一行意思是默認啓動20個,請求多的時候會增多,可是空閒的時候多於35會自動減小,下面5結尾的一行意思是最低很多於5個,500的一行意思是每個子進程處理的請求數是500次,達到這個值就會自動退出。

固然這些參數後面的數字都是能夠改的。

咱們能夠改一下,而後從新加載php-fpm,而後能夠查看一下網站的進程數:

相關文章
相關標籤/搜索