php-fpm.conf能夠設置多個pool,在其中一個pool資源耗盡,會致使其餘站點沒法訪問資源,報502錯誤。有必要把站點進行分離,分別使用單獨的pool。php
查看當前poolnginx
cat /usr/local/php-fpm/etc/php-fpm.conf
以下圖vim
1.新增pool即在/usr/local/php-fpm/etc/php-fpm.conf配置文件中新增如下配置代碼:curl
[yolks.com] listen = /tmp/yolks.sock #listen = 127.0.0.1:9000 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
2.執行檢查文件是否有錯,而後從新加載php-fpm
/usr/local/php-fpm/sbin/php-fpm -t #檢查配置文件是否有誤 /etc/init.d/php-fpm reload #從新加載
3.查看進程測試
[root@yolks2 etc]# ps aux |grep php-fpm root 1390 0.0 0.2 227296 4968 ? Ss 22:32 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 1391 0.0 0.2 227236 4712 ? S 22:32 0:00 php-fpm: pool www php-fpm 1392 0.0 0.2 227236 4712 ? S 22:32 0:00 php-fpm: pool www php-fpm 1393 0.0 0.2 227236 4712 ? S 22:32 0:00 php-fpm: pool www php-fpm 1394 0.0 0.2 227236 4712 ? S 22:32 0:00 php-fpm: pool www php-fpm 1395 0.0 0.2 227236 4716 ? S 22:32 0:00 php-fpm: pool www php-fpm 1396 0.0 0.2 227236 4716 ? S 22:32 0:00 php-fpm: pool www php-fpm 1397 0.0 0.2 227236 4716 ? S 22:32 0:00 php-fpm: pool www php-fpm 1398 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1399 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1400 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1401 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1402 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1403 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1404 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1405 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1406 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1407 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1408 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1409 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1410 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool www php-fpm 1411 0.0 0.2 227236 4716 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1412 0.0 0.2 227236 4716 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1413 0.0 0.2 227236 4716 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1414 0.0 0.2 227236 4720 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1415 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1416 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1417 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1418 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1419 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1420 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1421 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1422 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1423 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1424 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1425 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1426 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1427 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1428 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1429 0.0 0.2 227236 4724 ? S 22:32 0:00 php-fpm: pool yolks.com php-fpm 1430 0.0 0.2 227236 4728 ? S 22:32 0:00 php-fpm: pool yolks.com root 1432 0.0 0.0 112720 976 pts/0 R+ 22:33 0:00 grep --color=auto php-fpm
上面顯示兩個不一樣的pool數據優化
4.進入虛擬主機配置文件目錄下給aaa.com.conf文件添加如下配置url
location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/yolks.sock; #修改此處sock文件配置 #fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name; #修改成默認文件配置 }
圖以下:spa
5.給php-fpm主配置文件也增長對應的include實現動態加載文件unix
include = etc/php-fpm.d/*.conf
如圖:
而且刪除以前配置的pool池。命令如:
50 dd
6.按照include的配置建立對應的目錄:/usr/local/php-fpm/etc
mkdir php-fpm.d
7.進入目錄php-fpm.d
1)建立www.conf文件內容以下
[www] listen = /tmp/php-fcgi.sock #listen = 127.0.0.1:9000 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
2)建立yolks.conf內容以下
[yolks.com] listen = /tmp/yolks.sock #listen = 127.0.0.1:9000 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
8.檢查文件並進行從新加載php-fpm
/usr/local/php-fpm/sbin/php-fpm -t #檢查配置文件是否有誤 /etc/init.d/php-fpm reload #從新加載
配置慢日誌有助於優化程序,方便具體分析。
本實例咱們以當前虛擬機環境下的www來操做慢日誌查詢
1.編輯/usr/local/php-fpm/etc/php-fpm.d/www.conf添加以下代碼配置
request_slowlog_timeout = 1 #超過1s記錄日誌 slowlog = /usr/local/php-fpm/var/log/www-slow.log #日誌位置
具體添加位置如圖所示:
查看日誌記錄文件:
[root@yolks2 php-fpm.d]# ls /usr/local/php-fpm/var/log/ php-fpm.log www-slow.log [root@yolks2 php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log
2.模擬慢執行腳本
cat /usr/local/nginx/conf/vhost/test.com.conf
查看站點
建立對應文件
vim /data/wwwroot/test.com/sleep.php
sleep.php文件內容以下:
<?php echo 「test slow log」; sleep(2); echo 「done」; ?>
3.開啓錯誤日誌而且進行從新加載php-fpm
vim /usr/local/php-fpm/etc/php.ini display_errors = On #開啓錯誤日誌
4.測試
curl -x127.0.0.1:80 test.com/sleep.php
1.配置文件/usr/local/php-fpm/etc/php-fpm.d/www.conf中添加以下代碼:
php_admin_value[open_basedir]=/data/wwwroot/yolks.com:/tmp/
測試方法,修改對應配置而後進行ps aux查看進程數便可