【问题标题】:Sending errors to syslog in php-fpm在 php-fpm 中向 syslog 发送错误
【发布时间】:2014-03-22 08:14:05
【问题描述】:

我正在尝试设置一个 php-fpm 守护程序以将 error_log 发送到 syslog。

我的配置 php-fpm.conf 看起来是这样的。

error_log = syslog
syslog.facility = local4
syslog.ident = php-fpm

重启 php-fpm 守护进程我可以在远程 syslog 服务器中看到。

Mar 22 00:32:08 192.168.33.14 php-fpm[20919]: [NOTICE] configuration file /etc/php5/fpm/php-fpm.conf test is successful

很好!

但是当我用一个有错误的真实 php 脚本测试这个时,消息变为..

Mar 22 00:05:59 192.168.33.14 ool www[20889]: PHP Parse error:  syntax error, unexpected ''api'' (T_CONSTANT_ENCAPSED_STRING) in /var/api/public/index.php on line 2

ool www 是池 + 默认池名称 (www)。所以两个问题:

  • 为什么我看到的是 ool www 而不是 php-fpm(syslog.ident 值)?李>
  • 为什么池标题被截断?

【问题讨论】:

标签: php syslog


【解决方案1】:

我认为这是一个 PHP 错误 :( 请看

https://bugs.php.net/bug.php?id=67764

【讨论】:

    【解决方案2】:

    随着我们开始将旧系统升级到 php 5.5+,此问题将变得更加普遍,因此发布以供将来参考。

    这是我们使用的修复程序,将其置于尽可能低的级别,以便您的所有脚本都能受益:

    // This was needed for upgrade to php5.5+ with php-fpm
    //  Source: https://gist.github.com/gjuric/e0c9e45efb3d15e3b949
    //  Bug History: http://stackoverflow.com/questions/22575152/sending-errors-to-syslog-in-php-fpm
    openlog('php', LOG_ODELAY, LOG_USER);
    

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 2015-11-16
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多