我正在尝试设置一个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)。所以有两个问题:
答案 0 :(得分:1)
我认为这是一个PHP错误:( 请看
答案 1 :(得分:1)
随着我们开始将旧系统升级到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);