2018-05-02 Linux學習
vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加
include = etc/php-fpm.d/*.conf
mkdir /usr/local/php/etc/php-fpm.d/
cd /usr/local/php/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_requests = 500
rlimit_files = 1024
繼續編輯配置文件
vim aming.conf //內容如下
[aming]
listen = /tmp/aming.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
[root@linux-01 aming.com]# cd /usr/local/php-fpm/etc/ [root@linux-01 etc]# ls pear.conf php-fpm.conf php-fpm.conf.default php.ini [root@linux-01 etc]# cat php-fpm.conf [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log [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 [root@linux-01 etc]# vim php-fpm.conf 添加一下內容 [aming.com] listen = /tmp/aming.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 [root@linux-01 etc]# /usr/local/php-fpm/sbin/php-fpm -t [29-Mar-2018 06:33:41] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful [root@linux-01 etc]# /etc/init.d/php-fpm reload Reload service php-fpm done [root@linux-01 etc]# ps aux | grep -i php-fpm //多了一個aming.com [root@linux-01 etc]# cd /usr/local/nginx/conf/vhost/ [root@linux-01 vhost]# ls aaa.com.conf load.conf proxy.conf ssl.conf test.com.conf [root@linux-01 vhost]# vi aaa.com.conf //添加location php部分 server { listen 80 default_server; server_name aaa.com; index index.html index.htm index.php; root /data/wwwroot/default; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/aming.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name; } } 多個pool,有的網址無法訪問時,別的網頁不受影響 [root@linux-01 ~]# cd /usr/local/php-fpm/etc/ [root@linux-01 etc]# ls pear.conf php-fpm.conf php-fpm.conf.default php.ini [root@linux-01 etc]# vim php-fpm.conf //改為如下內容 [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log include = etc/php-fpm.d/*.conf [root@linux-01 etc]# mkdir php-fpm.d [root@linux-01 etc]# cd php-fpm.d/ [root@linux-01 php-fpm.d]# vim aming.conf [aming.com] listen = /tmp/aming.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 [root@linux-01 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 [root@linux-01 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t [29-Mar-2018 07:00:43] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful [root@linux-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@linux-01 php-fpm.d]# ps aux |grep php-fpm 配置成多個pool 池子後,和原來的一個php-fpm.conf配置多個pool效果一樣
12.22 php-fpm慢執行日誌
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf //加入如下內容
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
配置nginx的虛擬主機test.com.conf,把unix:/tmp/php-fcgi.sock改為unix:/tmp/www.sock
重新加載nginx服務
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
操作過程
[root@linux-01 php-fpm.d]# vim www.conf
//添加如下內容
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
[root@linux-01 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[29-Mar-2018 07:08:29] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@linux-01 php-fpm.d]# /etc/init.d/php-fpm reload
[root@linux-01 php-fpm.d]# ls /usr/local/php-fpm/var/log/www-slow.log
/usr/local/php-fpm/var/log/www-slow.log
[root@linux-01 php-fpm.d]# vim /data/wwwroot/test.com/sleep.php
<?php
echo "test slow log";
sleep(2);
echo "done";
?>
[root@linux-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php
停頓2秒
[root@linux-01 php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log
[29-Mar-2018 08:26:51] [pool www] pid 15527
script_filename = /data/wwwroot/test.com/sleep.php
[0x00007f1e35886298] sleep() /data/wwwroot/test.com/sleep.php:3
12.23 open_basedir
vim /usr/local/php-fpm/etc/php-fpm.d/aming.conf //加入如下內容
php_admin_value[open_basedir]=/data/wwwroot/aming.com:/tmp/
創建測試php腳本,進行測試
再次更改aming.conf,修改路徑,再次測試
配置錯誤日誌
再次測試
查看錯誤日誌
php-fcgi.sock
操作過程
[root@linux-01 php-fpm.d]# vim www.conf //添加一下內容
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/
[root@linux-01 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[29-Mar-2018 08:32:55] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@linux-01 php-fpm.d]# /etc/init.d/php-fpm reloa
[root@linux-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/3.php
顯示phpinfo網頁信息
12.24 php-fpm進程管理
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的子進程最多可以處理這麽多請求,當達到這個數值時,它會自動退出。
2018-05-02 Linux學習