문제

I'm trying to setup an php-fpm daemon to send error_log to syslog.

My config php-fpm.conf looks thereby.

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

Restarting php-fpm daemon I can see in the remote syslog server.

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

Good!

But when I test this with a real php script with errors, message change to..

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 is pool + default pool name (www). So two questions:

  • Why I see ool www instead of php-fpm (syslog.ident value)?
  • Why is pool title is truncated?
도움이 되었습니까?

해결책

I think its a PHP bug :( See please

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

다른 팁

This issue will become more prevalent as we start to upgrade older systems to php 5.5+, so posting for future reference.

Here is the fix we used, put it as low level as you can so all your scripts can benefit:

// 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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top