LNMP5) php-fpm的pool、慢执行日志、open_basedir、php-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定义的。



























原文地址:http://blog.51cto.com/13589255/2091217

时间: 2024-10-07 08:10:04

LNMP5) php-fpm的pool、慢执行日志、open_basedir、php-fpm进程管理的相关文章

51.php-fpm的pool、php-fpm慢执行日志open_basedir、php-fpm进程

一.php-fpm的pool vim /usr/local/php-fpm/etc/php-fpm.conf //在[global]部分增加 include = etc/php-fpm.d/*.conf //类似nginx的vhost mkdir /usr/local/php-fpm/etc/php-fpm.d/ cd /usr/local/php-fpm/etc/php-fpm.d/ vim www.conf //内容如下 [www] listen = /tmp/php-fcgi.sock l

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

一. php-fpm的pool vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加include = etc/php-fpm.d/*.confmkdir /usr/local/php/etc/php-fpm.d/cd /usr/local/php/etc/php-fpm.d vim www.conf //内容如下[www]listen = /tmp/www.socklisten.mode=666user = php-fpmgroup = php-

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

php-fpm的pool 方法1:在大的配置文件里吗统一实现编辑配置文件重新加载配置 方法2:总分的方法,先在大的配置文件里设置一个大的目录,再在这个目录里面增加2个pool1.编辑大的配置文件2.在这个目录里面配置2个小的配置文件重新加载配置,验证pool池 php-fpm慢执行日志 配置文件重新加载 vim /data/wwwroot/test.com/sleep.php//写入如下内容测试访问效果,2秒后才出现结果查看日志结果 php-fpm定义open_basedir 编辑配置文件测试访

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

php-fpm配置 和lamp不同的是,在lnmp的架构中,php-fpm作为一个独立的服务存在,既然是独立的服务存在,那他就有自己的配置文件.php-fpm的配置文件是/usr/local/php-fpm/etc/. php-fpm的pool(池子) nginx支持多个虚拟主机,php-fmp同样也支持配置多个pool,每一个pool可以监听一个端口,也可以监听一个socket(套接口).比如我们的nginx有多个站点,那么每一个站点都可以使用一个pool.这样做的好处是当其中一个php显示5

Linux centosVMware LAMP php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理

一.php-fpm的pool vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加 include = etc/php-fpm.d/*.conf 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 grou

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

php-fpm的pool 为了避免因多站点使用同一个pool时,如果一个站点访问量过大导致资源耗尽出现问题,进而影响使用同一个pool的其他站点的正常运行,就需要对每个站点配置一个单独的pool.实现方式和nginx的vhost差不多 编辑主配置文件 [[email protected] aming.com]# vim /usr/local/php-fpm/etc/php-fpm.conf [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid

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

1.php-fpm的pool 编辑配置文件vim /usr/local/php/etc/php-fpm.conf,此时只定义了一个pool,即www 可以定义多个pool,监听不同的地址或socket,如果有多个站点时,可以使用多个pool,这样当其中一个网站502之后,不会影响其他站点的正常访问. 在配置文件中增加如下部分,vim /usr/local/php/etc/php-fpm.conf [aming.com] listen = /tmp/aming.sock listen.mode=6

五十一、php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm

五十一.php-fpm的pool.php-fpm慢执行日志.open_basedir.php-fpm进程管理 一.php-fpm的pool pool:右侧.ps aux最右侧的那一列.就是它的池子. # cd /usr/local/php-fpm/etc # cat php-fpm.conf    //支持定义多个池子 [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/

12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理

12.21 php-fpm的pool php-fpm有一个概念叫pool,就是使用psaux看到的右侧的那一列,也就是它的池子, 如下图,我们在这里只定义了一个pool 其实他是支持定义多个池子的,每一个池子我们可以监听不同的sock,或者不同的tcpip,这样的话如果我们的nginx有好几个站点每个站点都可以使用不同pool,这样做的好处就是其中一个php502了,其他站点不收影响,(502很有可能是php资源不够了)如果你所有的网站都使用了同一个池子的话,其中一个网站发生了故障,比如程序员写