【发布时间】:2016-08-25 13:06:39
【问题描述】:
我使用 Nginx 1.8.1 作为 PHP 5.6.20 前的反向代理,而不是 FastCGI (PHP-FPM),我发现来自 PHP 的所有通知/警告/错误日志也被记录下来在 Nginx 中作为错误。有什么办法可以防止此类日志传播到 Nginx 的日志?我希望他们只登录 PHP 的日志文件。
这是一个例子:
[2016 年 4 月 29 日 22:23:10] 警告:[pool www] 孩子 20 对 stderr 说:“注意:PHP 消息:PHP 警告:phpinfo():依赖系统的时区是不安全的设置。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们选择了时区“UTC”现在,但请设置 date.timezone 以选择您的时区。在 /opt/web-app/index.php 的第 2 行"
同样的日志是它们作为错误添加到 Nginx 的日志文件中的:
2016/04/29 22:23:10 [错误] 6#0: 1 FastCGI 在标准错误中发送:“PHP 消息:PHP 警告:phpinfo():依赖系统的时区设置是不安全的。您*需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一个,但仍然收到此警告,您很可能拼错了时区标识符。我们现在选择了时区“UTC” ,但请在第 2 行的 /opt/web-app/index.php 中设置 date.timezone 以选择您的时区。同时从上游读取响应标头,客户端:172.18.0.1,服务器:,请求:“GET /favicon. ico HTTP/1.1",上游:"fastcgi://172.18.0.2:9000",主机:"localhost:8080",引用者:"http://localhost:8080/index.php"
【问题讨论】:
-
你发现了吗?我在 nginx 上,我有通过 php error_log 方法传递的自定义消息。但是当它到达 nginx 日志时,即使自定义消息是 DEBUG 类型,它也会在一些日志的开头在 stderr 中发送 FastCGI。如果您已经弄清楚了,将非常感谢您的意见。谢谢!