Linux-LNMP-php-fpm
- php-fpm的pool
- php-fpm慢执行日志
- open_basedir
- php-fpm进程管理
php-fpm的pool
定义多个php-fpm的pool
在/usr/local/php-fpm/etc/php-fpm.conf文件中定义多个pool.每个定义的pool名不一样,每个pool里的监听sock或ip:port应该不一样,在对应的Nginx的虚拟主机中也要修改监听的sock或ip:port.
vim /usr/local/php-fpm/etc/php-fpm.conf //在[global]部分增加 include = etc/php-fpm.d/*.conf mkdir /usr/local/php-fpm/etc/php-fpm.d/ vim /usr/local/php-fpm/etc/php-fpm.d/analysis.conf [analysis] listen = /tmp/analysis-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
php-fpm的慢执行日志
vim /usr/local/php-fpm/etc/php-fpm.d/default.conf //增加如下两行
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/default-slow.log
grep listen /usr/local/php-fpm/etc/php-fpm.d/default.conf //以下两行是查出的内容
listen = /tmp/php-fcgi.sock
listen.mode = 666
grep fastcgi_pass /usr/local/nginx/conf/vhost/default.conf //以下是查询得出的结果
fastcgi_pass unix:/tmp/php-fcgi.sock;
添加测试页面
vim /data/wwwroot/default/slow.php //以下是文件内容
<?php
echo "start";
sleep(2);
echo "end";
?>
测试,查日志
curl -x127.0.0.1:80 www.default.com/slow.php
cat /usr/local/php-fpm/var/log/default-slow.log //以下是日志信息
[02-Mar-2018 10:04:20] [pool default] pid 49346
script_filename = /data/wwwroot/default/slow.php
[0x00007fc9e507f280] sleep() /data/wwwroot/default/slow.php:3
open_basedir
编辑php[pool]的配置文件
vim /usr/local/php-fpm/etc/php-fpm.d/default.conf //加入以下内容
php_admin_value[open_basedir]=/data/wwwroot/default:/tmp
重新加载配置文件,再进行测试
/etc/init.d/php-fpm reload
curl -x127.0.0.1:80 www.default.com/slow.php
定义php-fpm错误日志的存放路径,将php-fpm的pool中定义的open_basedir路径与nginx虚拟主机中定义的不一致,创建错误日志目录并给目录权限为777,刷新配置,检查日志,结果报404,代码如下:
vim /usr/local/php-fpm/etc/php.ini //搜索error_log,添加以下内容
error_log = /usr/local/php-fpm/var/logs/php_errors.log
mkdir /usr/local/php-fpm/var/logs/
touch /usr/local/php-fpm/var/logs/php_errors.log
chmod 777 /usr/local/php-fpm/var/logs/php_errors.log
将php-fpm的pool的配置文件修改过来,再次访问
vim /usr/local/php-fpm/etc/php-fpm.d/default.conf //修改open_basedir
/etc/init.d/php-fpm reload
curl -x127.0.0.1:80 www.default.com/slow.php //以下是访问内容
startend
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_request = 500 //定义一个子进程最多处理的请求数,也就是说在一个php-fpm的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。
转载于:https://blog.51cto.com/13480443/2074512