码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-06-17 21:22:23      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:cgi   list   load   不能   检查   不同的   超过   dmi   spl   

一、php-fpm的pool (配置多个池子多个隔离站点)
技术分享图片
#cd /usr/local/php-fpm/etc/
#vim php-fpm.conf //在配置文件中增加配置第二个站点aming.com,配置文件中的[www]和[aming.com]相当于是两个不同的池子
技术分享图片
#/usr/local/php-fpm/sbin/php-fpm -t //检查有没有语法错误
#/etc/init.d/php-fpm reload //重启
#ps aux |grep php-fpm //可以查看到[www]和[aming.com]两个不同的池子
#vim aaa.com.conf //增加如下部分,这样两个站点就隔离开了
技术分享图片
定义多个池子的好处是:比如一个站点的代码有问题,导致这个站点资源耗尽,访问报502错误,而另一个站点不受影响,因为他们使用的是不同的池子
#cd /usr/local/php-fpm/etc/
#cat php-fpm.conf
#vim php-fpm.conf //增加一行include,删除[www]和[aming.com]两个池子
技术分享图片
#mkdir /usr/local/php-fpm/etc/php-fpm.d/ //创建一个php-fpm.d/目录
#cd /usr/local/php-fpm/etc/php-fpm.d/
#vim www.conf //在php-fpm.d/目录下创建一个www.conf文件,把[www]这部分写进去
技术分享图片
#vim aming.conf //再创建一个aming.conf文件,把[aming.com]那部分内容写进去
技术分享图片
#/usr/local/php-fpm/sbin/php-fpm -t
#/etc/init.d/php-fpm restart //重启php-fpm
二、php-fpm慢执行日志
技术分享图片
#vi www.conf //配置文件中一般建议设置超过2秒钟记录日志
技术分享图片
#/usr/local/php-fpm/sbin/php-fpm -t
#/etc/init.d/php-fpm reload
#ls /usr/local/php-fpm/var/log/ //查看/usr/local/php-fpm/var/log/目录下有没有www-slow.log日志
php-fpm.log www-slow.log
#vim /data/wwwroot/test.com/sleep.php //在/data/wwwroot/test.com/目录下创建sleep.php ,写入如下内容,如下内容也可以写成一行不用换行
技术分享图片
排错方法:
#vi /usr/local/php-fpm/etc/php.ini //在配置文件中搜索display_errors,将466行 display_errors = Off修改为 display_errors = On,这样修改的好处是直接可以做网页上查看到具体的错误是什么
#/etc/init.d/php-fpm reload
#curl -x127.0.0.1:80 test.com/sleep.php //访问下sleep.php
#cat /usr/local/php-fpm/var/log/www-slow.log //查看下日志会记录慢执行日志的
三、open_basedir
技术分享图片
#cd /usr/local/php-fpm/etc/php-fpm.d/
#vi www.conf
在最后一行添加 php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/,注意这里的路径要写对,不然访问不到
#/etc/init.d/php-fpm restart
#curl -x127.0.0.1:80 test.com/sleep.php //访问状态码为200
#vim /usr/local/php-fpm/etc/php.ini
在线上生产环境上,display_errors = Off的状态应定义为Off,这样别人在浏览器看不到你的错误信息
;error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
;error_log = syslog
error_log = /usr/local/php-fpm/var/log/php-errors.log //增加一行定义错误日志路径
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT //此行下面增加一行并注释掉此行
error_reporting =E_ALL //新增加一行
#grep error_log /usr/local/php-fpm/etc/php.ini //查找错误日志的定义路径
; server-specific log, STDERR, or a location specified by the error_log
; Set maximum length of log_errors. In error_log information about the source is
;error_log = php_errors.log
;error_log = syslog
error_log = /usr/local/php-fpm/var/log/php-errors.log
; OPcache error_log file name. Empty string assumes "stderr".
;opcache.error_log=
#ls /usr/local/php-fpm/var/log/ //查看到此路径下没有php.ini中定义的错误日志路径
php-fpm.log www-slow.log
#touch /usr/local/php-fpm/var/log/php-errors.log //手动创建一个php-errors.log文件
#chmod 777 /usr/local/php-fpm/var/log/php-errors.lo //权限777,不然不能写入错误日志
#/etc/init.d/php-fpm restart //重启
#curl -x127.0.0.1:80 test.com/sleep.php //访问下sleep.php
#cat /usr/local/php-fpm/var/log/php-errors.log //查看错误日志
四、php-fpm进程管理
技术分享图片
#vim www.conf
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic //定义进程启动方式(dynamic表示动态,static表示静态)只有pm设置为dynamic动态的,下面的配置才生效
pm.max_children = 50 //定义最多启动的子进程数量
pm.start_servers = 20 //开始启动的子进程数量,默认启动20个
pm.min_spare_servers = 5 //空闲时最少有5个子进程在,到5个就会自动增加
pm.max_spare_servers = 35 //空闲时最多有几个子进程,到35个就会自定清理
pm.max_requests = 500 //每一个子进程最多可接受多少个请求,到达500就会自动退出子进程
rlimit_files = 1024 //每个子进程打开的文件句柄个数

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

标签:cgi   list   load   不能   检查   不同的   超过   dmi   spl   

原文地址:http://blog.51cto.com/13669226/2130195

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!