nginx php-fpm 如何禁用日志警告?

nginx php-fpm 如何禁用日志警告?

我有一个 nginx + php-fpm 的设置。我在 nginx 错误日志中发现了很多这样的 PHP 警告消息:

2016/03/17 20:57:23 [error] 23002#0: *114868 FastCGI sent in stderr: "PHP message: PHP Warning:  Declaration of Walker_Category_Filter::start_el(&$output, $category, $depth, $args) should be compatible with Walker_Category::start_el(&$output, $category, $depth = 0, $args = Array, $id = 0) in /var/www/wp-content/themes/venture/functions/theme/custom-post-types.php on line 0
PHP message: PHP Warning:  Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /var/www/wp-includes/functions.php on line 3464", client: 52.69.241.233, server: www.myhost.net, request: "GET /appuntamenti/ HTTP/1.1", host: "www.myhost.net"

我不想记录这样的事件,它们会填满我的日志并在 New Relic 报告上制造很多谣言。你知道如何改变 nginx 的这种行为吗?

我尝试用这个来改变我的php.ini配置:

 error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

该事件记录在 nginx 错误日志中,所以我认为这与 php-fpm 配置无关。

欢迎提出任何建议

谢谢 Fabio

答案1

这些是 PHP 本身生成的警告;由于它们没有被捕获就被打印到 stdout(或者可能是 stderr),所以它们最终会出现在您的服务器日志中。

我希望您输入的内容php.ini足以消除这些警告。如果没有发生这种情况,您应该检查应用程序是否通过以下方式覆盖这些设置功能error_reporting()

一般来说,你应该注意警告 - 毕竟它们只是警告!负责维护应用程序的人(可能是你)都应该调查并修复它们;在你的日志中隐藏它们只是掩盖问题,可能会给你带来麻烦。

答案2

尽管熊的回答对你有用,但我不得不使用以下方法。

在编辑 PHP.ini 文件并确保没有 ini_set/error_reporting 值并重新启动 php5-fpm 服务后,我仍然收到警告,最后我不得不将其添加到我的 fpm 池文件中

/etc/php5/fpm/pool.d/www.conf

关闭警告:

php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED

然后重启服务

service php5-fpm restart

答案3

nginx 添加

location / {
    ...

    fastcgi_param PHP_ADMIN_VALUE "error_reporting=E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED";
    
    ...
}

相关内容