在php fpm中将错误发送到syslog
我正在尝试设置一个php fpm守护进程,以将错误日志发送到syslog 我的配置php-fpm.conf如下所示在php fpm中将错误发送到syslog,php,syslog,Php,Syslog,我正在尝试设置一个php fpm守护进程,以将错误日志发送到syslog 我的配置php-fpm.conf如下所示 error_log = syslog syslog.facility = local4 syslog.ident = php-fpm 重新启动远程syslog服务器中的php fpm守护进程 Mar 22 00:32:08 192.168.33.14 php-fpm[20919]: [NOTICE] configuration file /etc/php5/fpm/php-fpm
error_log = syslog
syslog.facility = local4
syslog.ident = php-fpm
重新启动远程syslog服务器中的php fpm守护进程
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 value)
- 为什么池标题被截断
- 我认为这是一个PHP错误:(
请看
随着我们开始将较旧的系统升级到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);
虽然我自己的技巧()解决了这个问题,但是没有解决这个问题。你能解决这个问题吗?