php7-防止错误被广播

php7-防止错误被广播

在 Centos7 上,将 PHP 7 配置为将错误发送到 syslog,解析错误会广播到墙上,例如,登录的用户会看到如下消息:

Broadcast message from systemd-journald@xxxxxxxxxx (Fri 2017-03-03 22:29:05 UTC):

httpd[3465]: PHP Parse error:  Invalid numeric literal in /web/test.php on line 20

我想捕获这些消息并防止它们进入墙内。我尝试过这个 Rsyslog 配置:

user.*                                                /var/log/php.log
& stop

但是它并没有阻止广播消息。编辑/etc/systemd/journald.conf以包含ForwardToWall=no阻止广播消息...问题是它阻止全部显示的紧急消息是不可取的。

如何才能防止 PHP 解析错误被广播,但允许其他关键系统消息被记录到控制台?

答案1

事实证明,将ForwardToWall=no&ForwardToSyslog=yes放入/etc/systemd/journald.conf可以解决问题。

来自 PHP 的 Emerg 消息被这个自定义的 Rsyslog 配置捕获:

user.*                                                /var/log/php.log
& stop

其他紧急消息稍后会被捕获:

*.emerg                                                 :omusrmsg:*

它已将消息发送给所有登录用户。

相关内容