vim /usr/local/php/etc/php-fpm.conf
//在[global]部分增長include = etc/php-fpm.d/*.conf
# 至關與Nginx的虛擬主機文件 「vhost」 的配置mkdir /usr/local/php/etc/php-fpm.d/
cd /usr/local/php/etc/php-fpm.d/
建立「www」 的pool配置文件
vim www.conf
//內容以下php
[test] listen = /tmp/test.sock listen.mode=666 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
繼續建立「test2」的pool配置文件
vim test2.conf
//內容以下html
[admin] listen = /tmp/test2.sock listen.mode=666 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
/usr/local/php/sbin/php-fpm –t
/etc/init.d/php-fpm restart
nginx
編輯「php-fpm」的「pool」文件;
vim /usr/local/php-fpm/etc/php-fpm.d/test2.conf
//添加慢日誌記錄配置,如:下內容vim
request_slowlog_timeout = 1 # 超過1秒的php解析 記錄一次慢日誌,實際生產環境中 設置2秒 slowlog = /usr/local/php-fpm/var/log/test2-slow.log # 慢日誌存放路徑、名稱
建立測試html頁面
vim /data/wwwroot/test2.com/sleep.php
//寫入以下內容瀏覽器
<?php echo "test slow log"; sleep(2); echo "done"; ?>
curl -x127.0.0.1:80 test2.com/sleep.php
cat /usr/local/php-fpm/var/log/test2-slow.log
架構
open_basedir 限制php解析的目錄(LAMP 架構中 也能夠在 Apache 的配置中設置open_basedir;LNMP 架構直接在php的設置文件中設置)
vim /usr/local/php-fpm/etc/php-fpm.d/admin.conf
//配置文件中加入以下內容
…… php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/ # 這裏限制的目錄爲「/data/wwwroot/test.com」/和「/tmp/」目錄 ……
建立測試php腳本,進行測試
再次更改test.conf,修改open_basedir路徑,再次測試
配置錯誤日誌、再次測試、查看錯誤日誌curl
編輯配置文件:vim /opt/php-fpm/etc/php.ini
php-fpm
…… display_errors = Off ;錯誤顯示「Off 關閉」「On 開啓」,開啓後會在瀏覽器中顯示錯誤信息;生產環境不開啓 …… error_log = error_log = /opt/php-fpm/var/log/error.log ;定義日誌位置、日誌名稱 …… error_reporting = E_ALL ;定義日誌級別 ……
建立錯誤日誌文件,並設置權限777(建立日誌文件,設置權限,防止因權限問題致使日誌沒法記錄)
touch /opt/php-fpm/var/log/error.log
chmod 777 /opt/php-fpm/var/log/error.log
測試
php-fpm.conf 配置文件的部分參數說明;url
pm = dynamic //動態進程管理,也能夠是static pm.max_children = 50 //最大子進程數,ps aux能夠查看 pm.start_servers = 20 //啓動服務時會啓動的進程數 pm.min_spare_servers = 5 //定義在空閒時段,子進程數的最少數量,若是達到這個數值時,php-fpm服務會自動派生新的子進程。 pm.max_spare_servers = 35 //定義在空閒時段,子進程數的最大值,若是高於這個數值就開始清理空閒的子進程。 pm.max_requests = 500 //定義一個子進程最多處理的請求數,也就是說在一個php-fpm的子進程最多能夠處理這麼多請求,當達到這個數值時,它會自動退出。