51.php-fpm的pool、php-fpm慢執行日誌open_basedir、php-fpm進程
阿新 • • 發佈:2018-05-02
php-fpm的pool php-fpm慢執行日誌 open_basedir php-fpm進程管理 一、php-fpm的pool
vim /usr/local/php-fpm/etc/php-fpm.conf //在[global]部分增加
include = etc/php-fpm.d/*.conf //類似nginx的vhost
mkdir /usr/local/php-fpm/etc/php-fpm.d/
cd /usr/local/php-fpm/etc/php-fpm.d/
vim www.conf //內容如下
[www] listen = /tmp/php-fcgi.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
- 繼續編輯配置文件
vim chinantfy.conf //內容如下
[chinantfy]
listen = /tmp/chinantfy.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-fpm/sbin/php-fpm -t /etc/init.d/php-fpm restart/reload //重啟或者重新加載配置文件 ps aux | grep php-fpm
ls /usr/local/nginx/conf/vhost/
vim /usr/local/nginx/conf/vhost/test.com.conf
- 通過指定不同的sock來選擇不同的連接池
二、php-fpm慢執行日誌(用於定位php網站訪問變慢)
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf //加入如下內容 request_slowlog_timeout = 1 //超過1秒就會記錄,一般用2 即可 slowlog = /usr/local/php-fpm/var/log/www-slow.log
/usr/local/php-fpm/sbin/php-fpm -t /etc/init.d/php-fpm restart/reload
- 重新加載nginx服務
/usr/local/nginx/sbin/nginx -t /etc/init.d/nginx reload
vim /data/wwwroot/test.com/sleep.php //寫入如下內容 <?php echo "test slow log"; sleep(2); echo "done"; ?>
curl -x127.0.0.1:80 test.com/sleep.php cat /usr/local/php-fpm/var/log/www-slow.log
-
log文件顯示php第三行導致運行變慢
三、php-fpm定義open_basedir
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf //加入如下內容
php_admin_value[open_basedir]=/data/wwwroot/123test.com:/tmp/ //註意這裏路徑特意改錯了
/usr/local/php-fpm/sbin/php-fpm -t /etc/init.d/php-fpm reload
curl -x127.0.0.1:80 test.com/sleep.php -I
- 配置錯誤日誌
vi /usr/local/php-fpm/etc/php.ini //修改下面兩行 error_log=/usr/local/php-fpm/var/log/php_errors.1og error_reporting =E_ALL
/usr/local/php-fpm/sbin/php-fpm -t /etc/init.d/php-fpm reload
- 手動生成日誌文件並修改權限
touch /usr/local/php-fpm/var/log/php_errors.1og chmod 777 /usr/local/php-fpm/var/log/php_errors.1og
- 再次測試
curl -x127.0.0.1:80 test.com/sleep.php -I
-
再次更改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進程管理
cat /usr/local/php-fpm/etc/php-fpm.d/www.conf
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的子進程最多可以處理這麽多請求,當達到這個數值時,它會自動退出。
51.php-fpm的pool、php-fpm慢執行日誌open_basedir、php-fpm進程