十三周一次課(3月19日)
12.21 php-fpm的pool
nginx有多個站點,每一個站點使用各自的pool,這樣當一個站點有問題(比如502錯誤)時,其他站點不會受到影響.
或者
vim /usr/local/php-fpm/etc/php-fpm.conf #在[global]部分增加
include = etc/php-fpm.d/*.confmkdir /usr/local/php-fpm/etc/php-fpm.d/
cd /usr/local/php-fpm/etc/php-fpm.d/
新增配置文件www.conf
vim www.conf #內容如下
[www]
listen = /tmp/php-fcgi.sock
listen.mode=666
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
12.22 php-fpm慢執行日誌
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
在末尾加入如下內容:
request_slowlog_timeout = 1 記錄php執行超過1秒的操作
slowlog = /usr/local/php-fpm/var/log/www-slow.log 定義慢執行日誌所在位置
測試模擬
執行有語法錯誤,先排錯
打開配置修改display-errors=on 直接在瀏覽器上查看錯誤
配置不對,重新修改
再次加載執行過程停頓了一會
查看慢日誌
12.23 open_basedir
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
加入如下內容
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp//usr/local/php-fpm/sbin/php-fpm -t
/etc/init.d/php-fpm reload
配置php-fpm錯誤日誌
具體步驟如下:
vi /usr/local/php-fpm/etc/php.ini
display_errors = Off #不讓其他人能通過瀏覽器看到錯誤信息
error_log = /usr/local/php-fpm/var/log/php_errors.log #錯誤日誌存放位置
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT #定義錯誤日誌級別
查看錯誤日誌
12.24 php-fpm進程管理
pm = dynamic
動態進程管理,也可以是static. 註意當為static時,只有pm.max_children = 50生效pm.max_children = 50
最大子進程數pm.start_servers = 20
啟動服務時會啟動的進程數pm.min_spare_servers = 5
定義在空閑時段,子進程數的最少數量,如果達到這個數值時,php-fpm服務會自動派生新的子進程。pm.max_spare_servers = 35
定義在空閑時段,子進程數的最大值,如果高於這個數值就開始清理空閑的子進程。pm.max_requests = 500
定義一個子進程最多處理的請求數,也就是說在一個php-fpm的子進程最多可以處理這麽多請求,當達到這個數值時,它會自動退出。
十三周一次課(3月19日)