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