53:php-fpm的pool及慢执行日记, openbase_dir php-fpm进程管理

1、php-fpm的pool

在php-fpm里面有一个概念,叫做pool,使用ps aux|grep php-fpm最右侧的那一列就是pool,也就是它的池子;

[root@localhost_001 vhost]# ps aux |grep php-fpm
root       1072  0.0  0.2 227240  4948 ?        Ss   09:31   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm    1073  0.0  0.2 227240  4704 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1074  0.0  0.2 227240  4704 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1075  0.0  0.2 227240  4704 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1076  0.0  0.2 227240  4704 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1077  0.0  0.2 227240  4708 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1078  0.0  0.2 227240  4708 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1079  0.0  0.2 227240  4708 ?        S    09:31   0:00 php-fpm: pool www
php-fpm    1080  0.0  0.2 227240  4708 ?        S    09:31   0:00 php-fpm: pool www
[root@localhost_001 vhost]# ps aux |grep php-fpm |grep -v 'grep'|wc -l
21

2:切换目录,会看到我们只定义了一个www的pool;

注释:其实是支持定义多个池子的,每一个池子可以监听不同的sock和IP地址,nginx有多个站点的时候,每个站点去使用一个独立的pool;

站点分开使用pool的优势:当其中一个php发生了502错误(有可能是资源不够了),如果所有的站点共同使用了一个pool池子,那么当其中一个网站发生了故障(可能写的程序有问题),会把你的php的资源耗尽,这样会造成其他站点也会502,所以有必要把每个站点隔离开来,每一个站点使用独立的pool;   请求过多,资源耗尽;

设置多个pool的方法如下;

(1):在/usr/local/php-fpm/etc/php-fpm里继续增加第二个pool;   test    如下:

[root@localhost_001 etc]# cat 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 = 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

[test]                           #定义的第二个pool池子;
listen = /tmp/test.sock          #通过监听的sock来区分;
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

注释:如上图例:我们自定义名称:test     自定义监听方式为 listen = /tmp/test.sock

3:然后检测php-fpm 并重新启动服务;

[root@localhost_001 etc]# /usr/local/php-fpm/sbin/php-fpm -t
[06-Nov-2018 12:37:27] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@localhost_001 etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

4:这是再使用ps aux|grep php-fpm 查看,会发现右侧多了 test 的 pool 的池子;

[root@localhost_001 etc]# ps aux |grep php-fpm
root       3750  0.0  0.2 123708  4968 ?        Ss   12:37   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm    3751  0.0  0.2 123648  4700 ?        S    12:37   0:00 php-fpm: pool www
php-fpm    3752  0.0  0.2 123648  4700 ?        S    12:37   0:00 php-fpm: pool www
php-fpm    3753  0.0  0.2 123648  4700 ?        S    12:37   0:00 php-fpm: pool www
php-fpm    3754  0.0  0.2 123648  4700 ?        S    12:37   0:00 php-fpm: pool www
php-fpm    3755  0.0  0.2 123648  4704 ?        S    12:37   0:00 php-fpm: pool www
php-fpm    3787  0.0  0.2 123648  4712 ?        S    12:37   0:00 php-fpm: pool test
php-fpm    3788  0.0  0.2 123648  4712 ?        S    12:37   0:00 php-fpm: pool test
php-fpm    3789  0.0  0.2 123648  4716 ?        S    12:37   0:00 php-fpm: pool test
php-fpm    3790  0.0  0.2 123648  4716 ?        S    12:37   0:00 php-fpm: pool test
[root@localhost_001 etc]# ps aux |grep php-fpm|grep test|wc -l
20

注释:当时主进程还是只有1个的

5:在nginx配置里用另一个站点使用新的pool池子;

[root@localhost_001 etc]# cd /usr/local/nginx/conf/vhost/
[root@localhost_001 vhost]# ls
aaa.com.conf  ssl.conf  test.com.conf

注释:如上图例,我们有两个站点;  aaa.com    test.com.conf

1:test.com.conf使用是www的pool,通过如下配置来指定使用哪个pool;

#fastcgi_pass  unix:/tmp/php-fcgi.sock;       #通过指定/tmp/下的通信sock来决定使用哪个pool池子;

[root@localhost_001 vhost]# cat test.com.conf 
server
{
    listen 80;
    server_name www.test.com bbs.test.com test1.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;   #指定使用php-fcgi的pool池子;##写错这个路径,就会显示502
    #    fastcgi_pass 127.0.0.1:9000; 
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
    }
    access_log /tmp/test.com.log combined_realip;
}

 

2:设置aaa.com来使用之前定义好的pool池子test

[root@localhost_001 vhost]# vim aaa.com.conf  
server
{
    listen 80 default_server; 
    # 有这个标记的就是默认虚拟主机
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
    location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/test.sock;        #指定使用test的pool池子;##写错这个路径,就会显示502
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
    }
}

注释:如上图例,这样两个站点就隔离开了;

注释:假设www.test.com请求了很大,最终将php-fpm进程耗尽了,当有其他的请求过来时,就会报502错误,因为没有多余的php-fpm提供服务了,而另一个站点aaa.com则不受影响,因为使用的是另一个pool池子(test),这就是需要定义多个池子的原因了;

6:方法二,在/usr/local/php-fpm/etc/php-fpm写入include  vhost/*.conf,然后vhost下分别写入多个pool池子,其余配置不变;

注释:这里的配置和nginx的虚拟主机的用法是一样子的;

1:首先把在配置文件/usr/local/php-fpm/etc/php-fpm里global里加入如下一行;将其他池子的内容都删除;  100dd  ---> 快速删除;

2:上图例中定义include定义的是在etc/php-fpm.d/*.conf目录下,所有还需要创建这个目录;

[root@localhost_001 etc]# mkdir php-fpm.d
[root@localhost_001 etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d  php.ini

3:创建www.conf(即www.test.com的pool池子);

[root@localhost_001 php-fpm.d]# vim 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

创建test.com(即aaa.com的pool池子);

[root@localhost_001 php-fpm.d]# vim test.conf 
[test]                           #定义的第二个pool池子;
listen = /tmp/test.sock          #通过监听的sock来区分;
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

4:检测是否有错误,并重新启动php-fpm;

[root@localhost_001 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[06-Nov-2018 14:21:23] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@localhost_001 php-fpm.d]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

5:用ps aux |grep php-fpm 查看是否正常;

[root@localhost_001 php-fpm.d]# ps aux |grep php-fpm
root       3888  0.0  0.2 123708  4976 ?        Ss   14:21   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm    3889  0.0  0.2 123648  4704 ?        S    14:21   0:00 php-fpm: pool test
php-fpm    3890  0.0  0.2 123648  4704 ?        S    14:21   0:00 php-fpm: pool test
php-fpm    3891  0.0  0.2 123648  4704 ?        S    14:21   0:00 php-fpm: pool test
php-fpm    3892  0.0  0.2 123648  4704 ?        S    14:21   0:00 php-fpm: pool test
php-fpm    3893  0.0  0.2 123648  4708 ?        S    14:21   0:00 php-fpm: pool test
php-fpm    3894  0.0  0.2 123648  4708 ?        S    14:21   0:00 php-fpm: pool test
php-fpm    3921  0.0  0.2 123648  4716 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3922  0.0  0.2 123648  4716 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3923  0.0  0.2 123648  4716 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3924  0.0  0.2 123648  4716 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3925  0.0  0.2 123648  4716 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3926  0.0  0.2 123648  4716 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3927  0.0  0.2 123648  4720 ?        S    14:21   0:00 php-fpm: pool www
php-fpm    3928  0.0  0.2 123648  4720 ?        S    14:21   0:00 php-fpm: pool www

3、php的慢执行日记;

在做php的网站,建议使用lnmp,方便分析php的慢执行日记;

查询方法:系统负载,可以通过各种工具查看,查出是那个进程导致的;

php的访问慢:通过查看慢执行日记;

1:在php的pool池子中添加如下两行;   /usr/local/php-fpm/etc/php-fpm.d/www.conf

[root@localhost_001 php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
[root@localhost_001 php-fpm.d]# cat 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
3新赠如下两行;
request_slowlog_timeout = 1     #慢执行超过1s后则记录日记;
slowlog = /usr/local/php-fpm/var/log/www-slow.log      #慢执行日记记录的位置在这里;

2:检测语法错误并重新加载配置文件;

[root@localhost_001 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[06-Nov-2018 14:36:27] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@localhost_001 php-fpm.d]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

3:查看慢执行日记文件是否生成;

[root@localhost_001 php-fpm.d]# ls /usr/local/php-fpm/var/log/www-slow.log 
/usr/local/php-fpm/var/log/www-slow.log
[root@localhost_001 php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log 

注释:日记为空,因为没有慢执行的记录;

4:此时模拟慢执行的php,所以需要在/data/wwwroot/test下操作;

[root@localhost_001 php-fpm.d]# vim /data/wwwroot/test.com/sleep.php
cat /data/wwwroot/test.com/sleep.php
<?php
echo “test slow log”;
sleep(2);echo “done”;
?>

运行php脚本;未输出任何信息,状态码限制500错误;

[root@localhost_001 php-fpm.d]# curl -x127.0.0.1:80 www.test.com/sleep.php -I
HTTP/1.1 500 Internal Server Error
Server: nginx/1.4.7
Date: Tue, 06 Nov 2018 06:42:01 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

5:查看错误日记,简单的方法是在它的配置里打开错误日记显示,让其显示到浏览器上;

[root@localhost_001 php-fpm.d]# vim /usr/local/php-fpm/etc/php.ini
display_errors = On

[root@localhost_001 php-fpm.d]# service php-fpm start

再次用curl命令来查看;  显示语法错误;有可能是逗号    分号写的不对;

[root@localhost_001 php-fpm.d]# curl -x127.0.0.1:80 www.test.com/sleep.php 
<br />
<b>Parse error</b>:  syntax error, unexpected 'slow' (T_STRING), expecting ',' or ';' in <b>/data/wwwroot/test.com/sleep.php</b> on line <b>2</b><br />

再次查看其sleep.php    修改其标点符号;

[root@localhost_001 php-fpm.d]# vim /data/wwwroot/test.com/sleep.php 
<?php
echo "test slow log";
sleep(2);echo "done";
?>
[root@localhost_001 php-fpm.d]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

5:再次测试,会看到访问成功了,但是停顿了几秒;

[root@localhost_001 php-fpm.d]# !curl
curl -x127.0.0.1:80 www.test.com/sleep.php 

6:再次查看是否生成了慢查询日记;

[root@localhost_001 php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log 

[06-Nov-2018 14:53:00]  [pool www] pid 4168
script_filename = /data/wwwroot/test.com/sleep.php
[0x00007fbc55df1258] sleep() /data/wwwroot/test.com/sleep.php:3

注释:这个是慢查询日记的功能了,如果遇到php访问慢的情况,可以通过此日记来查看;

注释:在/usr/local/php-fpm/etc/php-fpm.d/www.conf里定义的内容:request_slowlog_timeout =  #后面的1设置慢执行日记的时间;

注释:一般都设置为2s,php的执行时间介于1到2秒之间;

3、php-fpm定义open_basedir:

作用:是限制php在指定的目录内活动;也为了安全;

因为服务器管理多个网站,在php.ini里定义多个open_basedir就不合适了,所以要么在apache的虚拟主机里定义,要么在php-fpm配置文件里定义,我们可以针对不同的池子去定义不同的open_basedir;

1:针对www.conf(pool池子为www来设置):

[root@localhost_001 php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/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 = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

2:检测并重启php-fpm;

[root@localhost_001 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[06-Nov-2018 15:03:36] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@localhost_001 php-fpm.d]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

3:访问测试;  curl   -x127.0.0.1:80    www.test.com/2.php

[root@localhost_001 php-fpm.d]# curl -x127.0.0.1:80 www.test.com/2.php -I
HTTP/1.1 200 OK
Server: nginx/1.4.7
Date: Tue, 06 Nov 2018 07:04:47 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

注释:若open_basedir路径定义错误,就会导致无法访问,形成404的状态码,curl命令会显示 “no  input   file   specified

[root@localhost_001 php-fpm.d]# vim www.conf 
[www]                    
listen = /tmp/php-fcgi.sock 
........      
php_admin_value[open_basedir]=/data/wwwroot/default:/tmp/
[root@localhost_001 php-fpm.d]# service php-fpm restart     #重新启动php-fpm服务;
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@localhost_001 php-fpm.d]# curl -x127.0.0.1:80 www.test.com/2.php 
No input file specified.
[root@localhost_001 php-fpm.d]# curl -x127.0.0.1:80 www.test.com/2.php -I
HTTP/1.1 404 Not Found
Server: nginx/1.4.7
Date: Tue, 06 Nov 2018 07:18:48 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

4:定义错误日记;    /usr/local/php-fpm/etc/php.ini

[root@localhost_001 etc]# vim php.ini
;搜索display_errors 并设置为 Off,不让错误日记输出到浏览器上,不安全;
display_errors = Off                
;error_log = syslog
;定义错误日记存放路径;
error_log = /usr/local/php/var/log/php_error.log
;定义错误日记的级别;  error_reporting = E_ALL   
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL          #定义错误日记级别;

注释:display_errors = Off  这个在线上是关闭的,不能让别人通过你的浏览器信息看看php的错误,而是要把错误记录到某个文件里;

检测并重新加载php-fpm的服务;

[root@localhost_001 etc]# /usr/local/php-fpm/sbin/php-fpm -t
[06-Nov-2018 15:33:46] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@localhost_001 etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

5:手动创建php_error.log错误日记,并设置777,防止不能写入;

[root@localhost_001 etc]# touch /usr/local/php-fpm/var/log/php_error.log
[root@localhost_001 etc]# chmod 777 !$
chmod 777 /usr/local/php-fpm/var/log/php_error.log
[root@localhost_001 etc]# ls -ld !$
ls -ld /usr/local/php-fpm/var/log/php_error.log
-rwxrwxrwx 1 root root 256 11月  6 15:35 /usr/local/php-fpm/var/log/php_error.log

6:然后测试;再次用 curl 命令来访问;

[root@localhost_001 etc]# curl -x127.0.0.1:80 www.test.com/2.php 
No input file specified.
[root@localhost_001 etc]# curl -x127.0.0.1:80 www.test.com/2.php -I
HTTP/1.1 404 Not Found
Server: nginx/1.4.7
Date: Tue, 06 Nov 2018 07:36:41 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

7:查看错误日记信息;      /usr/local/php-fpm/var/log/php_error.log

[root@localhost_001 etc]# tail /usr/local/php-fpm/var/log/php_error.log 
[06-Nov-2018 07:33:46 UTC] PHP Deprecated:  Comments starting with '#' are deprecated in Unknown on line 2 in Unknown on line 0
[06-Nov-2018 07:33:55 UTC] PHP Deprecated:  Comments starting with '#' are deprecated in Unknown on line 2 in Unknown on line 0
[06-Nov-2018 07:36:35 UTC] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/test.com/2.php) is not within the allowed path(s): (/data/wwwroot/default:/tmp/) in Unknown on line 0
[06-Nov-2018 07:36:35 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[06-Nov-2018 07:36:39 UTC] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/test.com/2.php) is not within the allowed path(s): (/data/wwwroot/default:/tmp/) in Unknown on line 0
[06-Nov-2018 07:36:39 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[06-Nov-2018 07:36:41 UTC] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/test.com/2.php) is not within the allowed path(s): (/data/wwwroot/default:/tmp/) in Unknown on line 0
[06-Nov-2018 07:36:41 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0

8:然后修改open_basedir到原先的test.com目录,然后再次访问;

[root@localhost_001 php-fpm.d]# cat www.conf 
[www]                    
listen = /tmp/php-fcgi.sock        
........
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/
[root@localhost_001 php-fpm.d]# service php-fpm restart      #重新启动php-fpm服务;
Gracefully shutting down php-fpm . done
Starting php-fpm  done

9:然后再次用curl命令来访问;    curl   -x127.0.0.1:80    www.test.com/2.php  -I

</div></body></html>[root@localhost_001 php-fpm.d]# curl -x127.0.0.1:80 www.test.com/2.php -I
HTTP/1.1 200 OK
Server: nginx/1.4.7
Date: Tue, 06 Nov 2018 07:39:19 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

4、php-fpm进程管理;    配置介绍;;;

[root@localhost_001 php-fpm.d]# cat 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 = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

pm = dynamic        表示进程以什么形式启动( dynamic| static ),dynamic就是动态启动,动态就是一开始是一个数值,会根据需求来自动生成,服务器比较闲的时候还会去销毁,销毁到一定程度时还会去自动生成;

pm.max_children = 50   表示最大子进程数;(当设置成static后,则只有这一行会生效,下面的都不生效,会一次性生成50个子进程

pm.start_servers = 20                  启动服务时会启动的进程数; ps   aux  |grep  php-fpm

pm.min_spare_servers = 5          定义空闲时段,子进程的最少数量,如果未达到,php-fpm会派生新的子进程;

pm.max_spare_servers = 35       定义空闲时段,子进程的最大值,如果高于这个值就开始清理空闲的子进程;

pm.max_requests = 500             每个子进程最多处理的请求数,也就是一个php-fpm的子进程最多处理这么多请求,当达到这个数值后,它就自动退出;

rlimit_files = 1024
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

注释:dynamic和static   表示以什么形式启动(动态或静态);

pm = dynamic 就是动态,动态就是一开始为一个数值,然后根据需要再自动生成,服务器比较闲的时候还会去销毁,销毁到一定程度还会自动创建,会根据下面的设置来设定生效;

pm.start_servers = 20                       
pm.min_spare_servers = 5           
pm.max_spare_servers = 35 

pm.max_requests = 500        
rlimit_files = 1024
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

而若当设置为 pm = static 后,则只有 pm.max_children = 50 这一个选项是生效的,其他都未生效;

pm.max_children = 50

pm.max_requests = 500        
rlimit_files = 1024
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

 

转载于:https://my.oschina.net/yuanhaohao/blog/2872482

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值