源码 ASP源码 PHP源码 NET源码 JAVA源码 FLASH源码 其它源码 整站源码 常见问题

开启php错误日志

PHP源码 技术02-千编万码 29天前  次浏览

nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询。

在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志。不会有php的error log 信息。nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog。
原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志。
所以我们要进行如下的设置就能查看到nginx下php-fpm不记录php错误日志的方法

1.修改 php-fpm.conf 文件,添加(或修改)如下配置:

  [global]
  error_log = log/error_log

  [www]
  catch_workers_output = yes


2.修改 php.ini 文件,添加(或修改)如下配置:

  log_errors = On
  error_log = "/usr/local/lnmp/php/var/log/error_log"
  error_reporting=E_ALL&~E_NOTICE

3.重启 php-fpm

经查log_errors= On,据官方的说法,当这个log_errors设置为On,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。于是将log_errors = Off,问题就解决了。

相关链接

发表评论