1. php-fpm的pool
-
编辑php-fpm配置文件php-fpm.con
vim /usr/local/php/etc/php-fpm.conf
//在[global]部分增加以下内容include = etc/php-fpm.d/*.conf
# 相当与Nginx的虚拟主机文件 “vhost” 的配置 -
创建存放pool配置文件目录
mkdir /usr/local/php/etc/php-fpm.d/
cd /usr/local/php/etc/php-fpm.d/
-
创建www 的pool配置文件
vim www.conf
//内容如下[test] listen = /tmp/test.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
-
继续创建test2的pool配置文件
vim test2.conf
//内容如下[admin] listen = /tmp/test2.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
2. php-fpm 执行慢日志
A. pool文件
编辑php-fpm的pool文件vim /usr/local/php-fpm/etc/php-fpm.d/test2.conf
//添加慢日志记录配置,如:下内容
request_slowlog_timeout = 1 # 超过1秒的php解析 记录一次慢日志,实际生产环境中 设置2秒slowlog = /usr/local/php-fpm/var/log/test2-slow.log # 慢日志存放路径、名称
B. 测试慢日志效果
配置nginx的虚拟主机test2.com.conf,把unix:/tmp/php-fcgi.sock改为unix:/tmp/test2.sock
重新加载nginx服务,创建测试html页面vim /data/wwwroot/test2.com/sleep.php
//写入如下内容 curl -x127.0.0.1:80 test2.com/sleep.php
cat /usr/local/php-fpm/var/log/test2-slow.log
3. php-fpm定义open_basedir
A. open_basedir
open_basedir 限制php解析的目录(LAMP 架构中 也可以在 Apache 的配置中设置open_basedir;LNMP 架构直接在php的设置文件中设置)
vim /usr/local/php-fpm/etc/php-fpm.d/admin.conf
//配置文件中加入如下内容 ……php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/# 这里限制的目录为“/data/wwwroot/test.com”/和“/tmp/”目录……
创建测试php脚本,进行测试;再次更改test.conf,修改open_basedir路径,再次测试
配置错误日志、再次测试、查看错误日志B. 错误日志
php-fpm的错误日志配置,编辑配置文件:vim /opt/php-fpm/etc/php.ini
……display_errors = Off ;错误显示“Off 关闭”“On 开启”,开启后会在浏览器中显示错误信息;生产环境不开启……error_log = error_log = /opt/php-fpm/var/log/error.log ;定义日志位置、日志名称……error_reporting = E_ALL ;定义日志级别……
创建错误日志文件,并设置权限777(创建日志文件,设置权限,防止因权限问题导致日志无法记录)
touch /opt/php-fpm/var/log/error.log
chmod 777 /opt/php-fpm/var/log/error.log
4. php-fpm 进程管理
php-fpm.conf 配置文件的部分参数说明;
pm = dynamic //动态进程管理,也可以是staticpm.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的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。