如何在syslog上显示php错误

时间:2011-06-24 14:41:05

标签: php error-handling syslog

我有一个计划在crontab上运行的脚本。我注意到我无法在任何地方看到php错误。我希望能够在/ var / log / syslog或其他地方看到php错误。我已经尝试配置我的php.ini来记录/var/log/php-errors.log上的错误,检查权限并重新启动apache服务仍然没有日志。

4 个答案:

答案 0 :(得分:7)

我在我的/etc/php5/cli/php.ini文件中有这个(我使用Debian;我假设它与你使用的相同)并且它将所有cron错误写入/ var / log / messages:

error_reporting  =  E_ALL & ~E_NOTICE
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 0
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
error_log = syslog

答案 1 :(得分:4)

在php.ini中尝试error_log = syslog

答案 2 :(得分:2)

有两个问题需要考虑:

首先,PHP CLI使用的php.ini与通过Apache运行的PHP版本不同。确保您正在编辑CLI版本中的error_log

其次,确保运行cron的用户可以写入您的日志文件。通常,您的用户帐户无法写入日志文件,因此您可能需要编辑权限。

答案 3 :(得分:1)

在Ubuntu 16.04上,/ dev / log由组mysyslog拥有(由systemd定义)。因此,要使apache2 / php能够写入syslog,必须将用户www-data添加到组mysyslog: addgroup www-data mysyslog