LNMP5) php-fpm的pool慢执行日志open_basedirphp-fpm进程管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP5) php-fpm的pool慢执行日志open_basedirphp-fpm进程管理相关的知识,希望对你有一定的参考价值。

                 php-fpm的pool

技术分享图片

(在之前实验中我之定义了一个pool

技术分享图片

 /usr/loacl/php-fpm/etc/php-fpm.conf

)

nginx中可以定义多个虚拟主机,也可以定义多个pool,每个pool可以监听一个端口,也可以监听一个socket。


因此在Nginx中如果有多个站点,则每个站点可以使用一个pool,这样就可以避免单独的一个站点耗尽php资源导致其他站点也访问有误。


定义多个pool:

cd /usr/local/php-fpm/etc/php-fpm.conf

添加多一个pool

技术分享图片

修改完配置文件后:

(1)测试配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t

(2)加载一下配置文件:

 /usr/local/nginx/sbin/nginx -s reload

(/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;

    }


技术分享图片

修改完配置文件后:

(1)测试配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t




把/usr/local/php-fpm/etc/php-fpm.conf 配置文件中配置的pool拆分到

单独的一个文件,只需在此配置文件中使用:include = etc/php-fpm.d/*.conf

再创建相应的目录把拆分的pool放置该目录下就可以include到配置文件中。

mkdir /usr/local/php/etc/php-fpm.d/


1.修改/usr/local/php-fpm/etc/php-fpm.conf 配置文件

技术分享图片


2.创建目录:mkdir /usr/local/php-fpm/etc/php-fpm.d/


3.创建相应pool文件

vim www.conf

[www]

#listen =127.0.0.1:9000 

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

vim cansheng.conf

[cansheng.com]

#listen =127.0.0.1:9000 

listen = /tmp/cansheng.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



修改完配置文件后:

(1)测试配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t

(2)加载一下配置文件:

 /usr/local/nginx/sbin/nginx -s reload

(/etc/init.d/php-fpm reload)




                 php-fpm慢执行日志

(很实用)

 php-fpm慢执行日志可以帮助我们快速地追踪到问题,清晰的了解到php脚本哪里执行时间长,它可以定位到具体的行。

实验针对www.conf这个pool文件操作:

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

技术分享图片

修改完配置文件后:

(1)测试配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t

(2)加载一下配置文件:

 /usr/local/nginx/sbin/nginx -s reload

(/etc/init.d/php-fpm reload)



查看慢行日志是否已经创建成功:

技术分享图片



测试:

(因为我们的www.conf这个pool文件监听的是 /tmp/php-fcgi.sock,

而/usr/local/nginx/conf/vhost/test.com.conf这个虚拟主机配置文件就是引用 /tmp/php-fcgi.sock文件,且是/data/wwwroot/test.com这个站点。


所以在/data/wwwroot/test.com站点下创建测试脚本:

vim 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


(记录了慢行记录)

技术分享图片



                    open_basedir

(open_basedir的目的是安全。httpd可以针对每个虚拟主机设置一个

open_basedir;php-fpm针对每个包不同的pool设置不同的open_basedir)

open_basedir 的作用是限制php在指定的目录里活动。

nginx添加open_basedir

(针对www.conf的pool文件实验/usr/local/php-fpm/etc/php-fpm.d/www.conf)

vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 添加内容:

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


技术分享图片

(定义open_basedir的路径一定要和引用该pool文件的虚拟主机配置文件的站点路劲一致)


修改完配置文件后:

(1)测试配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t

(2)加载一下配置文件:

 /usr/local/nginx/sbin/nginx -s reload

(/etc/init.d/php-fpm reload)



测试:

curl -x127.0.0.1:80 test.com/test.php -I

技术分享图片


配置错误日志

1.vim /usr/local/php-fpm/etc/php.ini

搜索/display_errors

技术分享图片

2.搜索:

/log_errors =

技术分享图片


3.搜索:

error_log = 指定错误日志文件路径

技术分享图片

( /usr/local/php-fpm/var/log/php_errors.log)


4.搜索:

error_reporting  定义日志级别

技术分享图片


手动生成错误日志文件,并修改权限777

touch /usr/local/php-fpm/var/log/php_errors.log

chmod 777 /usr/local/php-fpm/var/log/php_errors.log


故意改错open_basedir 做测试:

技术分享图片

重新启动php-fpm服务:/etc/init.d/php-fpm restart

技术分享图片


测试:

 curl -x127.0.0.1:80 test.com/test.php -I

技术分享图片


查看错误日志是否有信息:

cat  /usr/local/php-fpm/var/log/php_errors.log

技术分享图片



                    php-fpm进程管理

技术分享图片

就是在pool定义的。

技术分享图片




























以上是关于LNMP5) php-fpm的pool慢执行日志open_basedirphp-fpm进程管理的主要内容,如果未能解决你的问题,请参考以下文章

12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_b

php-fpm的pool,php-fpm慢执行日志,open_basedir,php-fpm进程管理

php-fpm的pool网站慢执行日志定义open_basedir设置php日志进程管理

linux的php-fpm的pool慢执行日志进程管理及open_basedir介绍

12.21 php-fpm的pool;12.22 php-fpm慢执行日志;12.23;12.24

12.21 php-fpm的pool;12.22 php-fpm慢执行日志;12.23 ;12.24