12.21 php-fpm的pool
12.22 php-fpm慢执行日志
12.23 open_basedir
12.24 php-fpm进程管理
php-fpm的pool
在之前的实验中我们定义了一个pool
Nginx中可以定义多个虚拟主机,也可以定义多个pool,每个pool可以监听一个端口,也可以监听一个socket。
因此在Nginx中如果有多个站点,则每个站点可以使用一个pool,这样就可以避免单独的一个站点耗尽php资源导致其他站点也访问有误。
vim /usr/local/php-fpm/etc/php-fpm.conf//在[global]部分增加
include = etc/php-fpm.d/*.conf (在[global]下面增加这一条就行了)
mkdir /usr/local/php/etc/php-fpm.d/
cd /usr/local/php/etc/php-fpm.d/
vim www.conf //内容如下
[www]
listen = /tmp/www.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 : /etc/init.d/php-fpm restart 或者 /etc/init.d/php-fpm reload
怎么使用我们的pool
cd /usr/local/nginx/conf/vhost/
进入到虚拟主机配置文件,站点的配置文件:
针对
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
}
php-fpm慢执行日志
有时候我们的php网站运行慢,我们就能用慢执行日志来查看时那些网站慢。
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(这里我修改后出现了解析php错误502)
重新加载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
php-fpm定义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,修改路径,再次测试(上面的aming.com应该改为test.com,因为)
配置错误日志
再次测试
查看错误日志
php-fpm进程管理