9

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

4

4 回答 4

10

我的/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
于 2011-06-24T14:46:00.320 回答
5

试试error_log = syslog你的 php.ini。

于 2011-06-24T14:45:57.307 回答
4

有两个问题需要考虑:

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

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

于 2011-06-24T14:49:36.523 回答
2

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

于 2017-01-30T14:02:57.447 回答