我有一个cron脚本,基本上从API更新我的数据库。它运行约5-10分钟,并在几天前工作正常。现在它在大约4-5分钟后抛出内部服务器错误。我在开发设置下运行Codeigniter,因此错误显示应该正常,但最重要的是我添加了:
ini_set('display_errors', 1);
ini_set("error_log", "/var/sites/l/SITE.com/php-error.log");
error_log( "File Test" );
ini_set('max_execution_time', 0);
但它仍然只是内部服务器错误而没有显示任何错误,并且日志中没有出现错误(但是“文件测试”确实出现了。)
答案 0 :(得分:1)
这里试试这个
register_shutdown_function(function(){
$lasterror = error_get_last();
$e = var_export($lasterror, true);
print_r($e);
file_put_contents(__DIR__.'/error.txt', $e);
});
这会将最后一个错误转储到文件中。应该给你这样的输出
array (
'type' => 4,
'message' => 'syntax error, unexpected \'}\'',
'file' => 'C:\\UniServerZ\\www\\test_site\\Sky\\Core\\Jet\\Jet.php',
'line' => 45,
)
我应该提一下,这也适用于内存问题..
答案 1 :(得分:0)
Cron作业倾向于绕过Web服务器并直接使用PHP执行,因此它不会在错误日志中显示任何内容。除非您已将输出重定向为null(在cron命令中),否则应将cron作业的输出发送到您的电子邮件地址。