天天看點

php-fpm配置檔案

說明:/usr/local/php/etc/php-fpm.conf   用于管理php服務

          /usr/local/php/etc/php.ini     php本身的全局配置檔案

一、清空配置檔案

       清空指令: > /usr/local/php/etc/php-fpm.conf

二、編輯新的檔案/usr/local/php/etc/php-fpm.conf

       說明:www表示pool的名字;新增的pool,除了名字和sock不能相同,其他可以一緻;不同主機,可以在配置檔案中指定不同的pool,即指定不同的監聽方式:fastcgi_pass unix:/tmp/php-fcgi.sock

       内容如下:

<code>[global]</code>

<code>pid = </code><code>/usr/local/php/var/run/php-fpm</code><code>.pid</code>

<code>error_log = </code><code>/usr/local/php/var/log/php-fpm</code><code>.log</code>

<code>[www]</code>

<code>listen = </code><code>/tmp/www</code><code>.sock</code>

<code>user = php-fpm</code>

<code>group = php-fpm</code>

<code>listen.owner = nobody</code>

<code>listen.group = nobody</code>

<code>pm = dynamic</code>

<code>pm.max_children = 50</code>

<code>pm.start_servers = 20</code>

<code>pm.min_spare_servers = 5</code>

<code>pm.max_spare_servers = 35</code>

<code>pm.max_requests = 500</code>

<code>rlimit_files = 1024</code>

<code>slowlog = </code><code>/tmp/www_slow</code><code>.log</code>

<code>request_slowlog_timeout = 1</code>

<code>php_admin_value[open_basedir]=</code><code>/data/www/</code><code>:</code><code>/tmp/</code>

<code>[www1]</code>

<code>listen = </code><code>/tmp/www1</code><code>.sock</code>

解釋: 

<code>listen = </code><code>/tmp/php-fcgi</code><code>.sock </code><code>#較多采用socket監聽方式,名字可自定義,預設是127.0.0.1:9000</code>

<code>listen.owner = nobody </code><code>#nginx中預設監聽的socket檔案權限是所有者隻讀,屬組和其他使用者沒有任何權限。是以,nginx的啟動使用者(咱們配置的是nobody)就沒有辦法去讀這個socket檔案,最終可能會導緻502;或者配置listen.mode = 0666 </code>

<code>pm = dynamic </code><code>#動态,管理pm子程序,如果寫成static,則除了pm.max_children,其他不管用</code>

<code>pm.max_children = 50 </code><code>#子程序最大50個,由于php是阻塞的,1個程序隻能同時處理一個php請求,max_children設定高可以同時處理更多的請求,但也意味着會占用更多的伺服器資源</code>

<code>pm.start_servers = 20 </code><code>#一開始啟動20個</code>

<code>pm.min_spare_servers = 5 </code><code>#空閑時,最小為5個</code>

<code>pm.max_spare_servers = 35 </code><code>#空閑時,最多為35個</code>

<code>pm.max_requests = 500 </code><code>#一個子程序在生命周期内共處理多少個請求,自動銷毀,可以解決php記憶體洩露的問題。但如果這個值設定太小,造成php頻繁重新開機,也會對性能造成影響</code>

<code>rlimit_files = 1024 </code><code>#每一個程序所使用的檔案描述符限制</code>

<code>slowlog = </code><code>/tmp/www_slow</code><code>.log </code><code># 增加slow日志,當網絡通路慢時,可以檢視該日志</code>

<code>request_slowlog_timeout = 1 </code><code># 當腳本執行時間超過1秒鐘,就記錄</code>

<code>php_admin_value[open_basedir]=</code><code>/data/www/</code><code>:</code><code>/tmp/</code> <code># 用于不同域名來限制通路目錄</code>

三、pool池的展現

       說明:根據配置檔案,php-fpm可以啟動多個pool池,分給不同的主機用,預設啟動20個,如沒有請求,則會一點一點損耗;不同的域名也可以使用相同的池子;分開的話,權限可以分開,一旦池子出現故障,可以避免其他網站同時挂掉

本文轉自 huangzp168 51CTO部落格,原文連結:http://blog.51cto.com/huangzp/1900631,如需轉載請自行聯系原作者