一、php-fpm的pool

1、Nginx 可以配置多个虚拟主机,php-fpm同样也支持配置多个pool,每个pool 可以监听一个端口或一个socket.

2、编辑配置文件:

1)第一种方法,在php-fpm.conf中添加pool:   vim /usr/local/php-fpm/etc/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


[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

2)第二种方法,单独创建配置文件:

a)  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
b)创建php-fpm.d目录,在创建独立的pool文件  vim /etc/php-fpm.d/www.conf 和aming.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

[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

二、php-fpm的慢执行日志

1、编辑配置文件 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
request_slowlog_timeout = 2
slowlog = /usr/local/php-fpm/var/log/www-slow.log

2、测试

1)编辑测试脚本 sleep.php

<?php
echo "test slow log";
sleep(3);
echo "down";
?>

3)测试

如何直接将错误信息显示出来,编辑 vim /usr/local/php-fpm/etc/php.ini,修改如下地方 on:

如下图,错误信息直接显示出来了。根据错误信息修改脚本。

查看日志,记录了那个脚本慢,哪一行慢。

三、open_basedir

1、编辑配置文件  vim /usr/local/php-fpm/etc/php-fpm.d/www.conf,增加以下内容:

php_admin_value[open_basedir]=/data/testnginx/test.com/:tmp

 2、修改  vim /usr/local/php-fpm/etc/php.ini 配置文件

关闭display,定义日志存放的地方和日志级别。

 

3、测试

1)首先创建日志文件,并给与777权限

[root@localhost log]# touch php_error.log
[root@localhost log]# chmod 777 php_error.log

2)在www.conf文件中定义一个错误路径,查看日志。

从错误日志可以看出,配置文件中是只允许访问aming.com和wwwtest.com的,而我们访问的是test.com.

3)修改为正确的路径,可以正常访问

四、php-fpm进程管理

www.conf中部分参数的含义:

pm = dynamic                           php-fpm的子进程的启动模式,dynamic为动态模式,还有static模式,如果为static模式,只有pm.max_children会生效,其他参数不起作用。
pm.max_children = 50              最大子进程数,如果为static模式,则进程数由pm.max_children
pm.start_servers = 20               启动服务时会启动的进程数
pm.min_spare_servers = 5       定义在空闲时段子进程的最少数量,如果达到这个数值,自动派生新的子进程
pm.max_spare_servers = 35    定义在空闲时段子进程的最大数量,如果达到这个数值,自动清理空闲子进程
pm.max_requests = 500           定义一个子进程最多处理的请求数,也就是说一个php-fpm的子进程最多可以处理这么多请求,当达到这个数值时,他会自动退出。

 

posted on 2018-03-19 22:15  天梭  阅读(165)  评论(0编辑  收藏  举报