Reputation: 1159
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:
Upvotes: 4
Views: 8750
Reputation: 19979
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);
Upvotes: 2
Reputation: 3825
I think its a PHP bug :( See please
https://bugs.php.net/bug.php?id=67764
Upvotes: 2