lnmp php错误日志日志,解决:LNMP架构下nginx的error_log日志过大问题

php-fpm.conf 中的catch_workers_output = yes

设置可以捕获 php 程序的错误输出

我在部署LNMP架构时都是设置此项为yes,便于日志分析

如果此项设置为 yes ,同时error_reporting = E_ALL

的话,那么nginx的错误日志会记录大量记录,内容如下:2013/08/09 14:38:14 [error] 6687#0: *33365028 FastCGI sent in stderr: "PHP Notice: Undefined variable: xxxx in /data/www/www/controllers/main.php on line 50

PHP Notice: Undefined variable: xxxx in /data/www/www/controllers/main.php on line 55

PHP Notice: Undefined index: sid in /data/www/www/controllers/main.php on line 88

当然了,这是在php代码写的不够严谨的情况下,如:

1、直接使用$sid = $_GET['sid'];

而未做 isset 判断

2、使用未定义变量print $username;

像这样的 E_NOTICE 类错误都会记录到nginx错误日志,日志大小增长迅速

比较好的解决方法是开发严谨的程序

其次就是调整错误报告的级别,如去掉 E_NOTICE 类的错误

可以在 php.ini 中设置,如:error_reporting = E_ALL & ~E_NOTICE

即可,

配置文件中不支持error_reporting = E_ALL ^ E_NOTICE

这种写法,但是在php程序中可以这么使用

其实即使在配置文件中设置了error_reporting = E_ALL & ~E_NOTICE

如果同时在程序中设置,如:error_reporting(E_ALL);

那么会以在程序中设置的为准,所以日志还是会记录 Notice 错误的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值