脚本在一段时间后抛出内部服务器错误

时间:2014-07-17 14:39:11

标签: php codeigniter

我有一个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);

但它仍然只是内部服务器错误而没有显示任何错误,并且日志中没有出现错误(但是“文件测试”确实出现了。)

2 个答案:

答案 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作业的输出发送到您的电子邮件地址。