簡介:這是[ZT] 使用PHP-FPM (PHP FastCGI Process Manager)來對php-cgi進程進行管理的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=334798' scrolling='no'>
如果使用PHP-FPM (PHP FastCGI Process Manager)來對進程進行管理,則需要提前做如下工作:
先到官網下載與php版本對應的php-fpm補丁:PHP-FPM
假設:php原始碼目錄在:/usr/local/php/source/php-5.2.9,php-fpm下載到了/usr/local/php/source
cd /usr/local/php/sourcegzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.9 -p1
補丁打好以後,編譯php的時候增加了下面幾個參數:
�enable-fpm 啟用fastcgi模式的fpm支援
�with-fpm-conf php-fpm的設定檔(預設是PREFIX/etc/php-fpm.conf)
�with-fpm-log php-fpm的記錄檔(預設是PREFIX/logs/php-fpm.log)
�with-fpm-pid php-fpm的pid檔案(預設是PREFIX/logs/php-fpm.pid)
編譯的時候�enable-fpm當然是必須的,其它幾項可以根據你自己的情況自行調整。
編譯參數:
cd /usr/local/src/php-5.2.9./configure --enable-fastcgi --enable-fpm --prefix=/usr/local/php --with-config-file-path=/etcmakemake install
其它的一些php編譯參數,這裡就略去了。
稍等片刻,等php編譯並安裝好,下面開始配置php-fpm。
vi /etc/php-fpm.conf
php-fpm.conf是一個xml格式的純文字檔案,具體細節可以自己開啟看看,基本上一看就明白了。在這裡特別注意一下這幾個配置欄位::
#這個表示php的fastcgi進程監聽的ip地址以及連接埠<value name="listen_address">127.0.0.1:9000</value> #表示php的fastcgi進程以什麼使用者以及使用者組來運行<value name="user">nobody</value><value name="group">nobody</value> #是否顯示php錯誤資訊<value name="display_errors">0</value> #最大的子進程數目<value name="max_children">5</value>
下面運行php-fpm:
/usr/local/php/bin/php-cgi --fpm
現在php的fastcgi進程就已經在後台運行,並監聽127.0.0.1的9000連接埠。
可以用ps和netstat來看看結果:
ps aux | grep php-cginetstat -tpl | grep php-cgi
安裝好了php-fpm,那麼它是怎麼來達到我們最初的目的的呢?
很幸運,php-fpm自己就給我們準備了一個程式來控制fastcgi進程,這個檔案在$PREFIX/sbin/php-fpm
運行一下:
/usr/local/php/sbin/php-fpm
該程式有如下參數:
start 啟動php的fastcgi進程
stop 強制終止php的fastcgi進程
quit 平滑終止php的fastcgi進程
restart 重啟php的fastcgi進程
reload 重新載入php的php.ini
logrotate 重新啟用log檔案
也就是說,在修改了php.ini之後,我們可以使用
/usr/local/php/sbin/php-fpm reload
這樣,保持php的fastcgi進程持續啟動並執行狀態下,又重新載入了php.ini。
轉載自 http://www.wemvc.com/872.html
愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具
http://biancheng.dnbcw.info/php/334798.html pageNo:10