php-fpm配置文件

## 配置php-fpm模板php

[root@localhost vhosts]# > /usr/local/php-fpm/etc/php-fpm.conf     #清空html

[root@localhost vhosts]# vim /usr/local/php-fpm/etc/php-fpm.confmysql

[global]nginx

pid = /usr/local/php-fpm/var/run/php-fpm.pidsql

error_log = /usr/local/php-fpm/var/log/php-fpm.logvim

[www]服務器

listen = /tmp/www.sock併發

user = php-fpmtcp

group = php-fpmide

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

[www1]

listen = /tmp/www1.sock

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

WEBRESOURCE90870aa34bcda303f224105024fe5

解釋說明:

[global] 全局配置

pid = 進程id存放路徑,必須寫php所在路徑

error_log = 錯誤日誌路徑,必須寫php所在路徑

 

[www] 資源池(支持多個池子,提供給不一樣的nginx虛擬主機服務,資源平均分配)

listen = tcp、sock通訊方式(名字可自定義)

user = 用戶必須存在

group = 組必須存在

;listen = 填寫sock存在路徑,使用.sock必須設置如下兩行(/dev/shm/xxx.sock文件放入內存高併發會快)

;listen.owner = ↓

;listen.group = ↓

用來定義文件屬主屬組,由nginx配置文件中的user決定(爲了.sock文件能夠讓nginx調用。不定義默認以root用戶生成.sock文件,但運行時是由nginx設置的user運行,則會出現權限不夠報502)

pm = dynamic 進程管理方式dynamic動態,隨着訪問量的增長而增長,減小而殺死空閒的進程

pm.max_children = 最大生成子進程數

pm.start_servers = 初始生成子進程數

pm.min_spare_servers = 最小空閒子進程數

pm.max_spare_servers = 最大空閒子進程數

pm.max_requests = 子進程接受php請求數,決定子進程的生命週期(最多接受的請求數,超出自動銷燬,爲了防止進程疲勞出現異常)

rlimit_files = 文件描述符限制

 

更加詳細的解釋:

動態、靜態子進程pm = static/dynamic

若是選擇static,則由pm.max_children指定固定的子進程數。

若是選擇dynamic,則由如下參數決定:

pm.max_children ,子進程最大數

pm.start_servers ,啓動時的進程數

pm.min_spare_servers ,保證空閒進程數最小值,若是空閒進程小於此值,則建立新的子進程

pm.max_spare_servers ,保證空閒進程數最大值,若是空閒進程大於此值,此進行清理

對於專用服務器,pm能夠設置爲static

## 檢查語法

[root@localhost vhosts]# /usr/local/php-fpm/sbin/php-fpm -t

## 重啓

[root@localhost vhosts]# /etc/init.d/php-fpm restart

## 查看進程

[root@localhost vhosts]# ps aux | grep php-fpm

WEBRESOURCE61b6cc685f91ee8a55960c14c0246

解釋說明:

出來了兩個pool,一個www,一個www1,那麼默認啓動20個,若是等一下子沒有請求過來,空閒的話,它就會一點一點地去直接銷燬、殺掉,到最後會變得愈來愈少。

啓動多個池子做用:能夠把不一樣的域名對應不一樣的池子。

## 引用php-fpm資源池

[root@localhost vhosts]# vim /usr/local/nginx/conf/vhosts/111.conf

server {

    listen 80;

    server_name 111.com;

    index index.html index.htm index.php;

    root /data/www;

 

    location ~ \.php$ {

        include fastcgi_params;

               fastcgi_pass unix:/tmp/www.sock;

        #fastcgi_pass  127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

    }

}

解釋說明:

fastcgi_pass 上面php-fpm.conf裏若是是sock,這就是sock文件,要一致,不然會502

注意:配置多個資源池listen不能相同,而且在虛擬主機解析.php文件的fastcgi_pass項配置

## 慢查詢日誌

mysql配置慢查詢日誌爲了最總執行緩慢、效率低的sql語句,找到後能夠針對性的調優優化;

php一樣也有執行慢的程序,能夠定位php腳本具體那一行執行效率慢;

[root@localhost vhosts]# vim /usr/local/php-fpm/etc/php-fpm.conf

[www]

slowlog = /usr/local/php-fpm/var/log/slow.log

request_slowlog_timeout = 1

解釋說明:

在某個資源池中配置

slowlog = 慢查詢日誌追蹤性能

request_slowlog_timeout = 配合slowlog設置過濾時間

## open_basedir

[root@localhost vhosts]# vim /usr/local/php-fpm/etc/php-fpm.conf

[www]

php_admin_value[open_basedir]=/data/www/:/tmp/

解釋說明:

php_admin_value[open_basedir]=dir:dir 鎖定站點訪問目錄,多目錄用:分割

一樣在某個資源池中進行配置,注意鎖定目錄時候請指定資源池對應的站點目錄

相關文章
相關標籤/搜索