2010-03-02 97 views
1

我在另一台计算机上设置了一个存储库,我希望通过http克隆它。我使用如下所述的指令设置了apache,并在我有我的index.cgi文件的目录中提供了mercurial。我可以克隆一个存储库,如果它是空的,但如果它包含文件,我会得到一个500错误。看看错误日志,我看到以下内容:当通过http进行水银克隆时,出现500错误

脚本格式错误。 Bad header =找到1个变更集:index.cgi

对我来说,这听起来像是一个权限问题,但一切都是775(我们落后于几个防火墙),所有内容都可以通过浏览器从index.cgi访问。

我没有选择,有什么我失踪?

Apache的配置:

Alias /hg /base/src/hg_cgi 
<Directory "/base/src/hg_cgi"> 
    DirectoryIndex index.cgi 
    AddHandler cgi-script .cgi 
    Options ExecCGI 
    Order allow,deny 
    Allow from all 
</Directory> 

回答

0

尝试改变这种 '别名' 到“ScriptAlias指定的

另外,检查你的Apache的错误日志。它会有更多更好的产出。

+0

得到我做的别名 - > ScriptAlias指令,没有变化。 Apache日志指出“脚本格式错误,头文件错误=找到1个变更集:index.cgi” – paulj3000 2010-03-02 19:43:50

+0

尝试执行一个脚本别名,直到CGI。这也更安全: ScriptAlias /base/src/hg_cgi/hgwebdir.cgi 还有什么在Apache错误日志?这就是钱的来源。 – 2010-03-02 20:53:35

+0

Apache错误日志显示“来自脚本的格式不正确的标题:错误的标题= 1找到的变更集:index.cgi”就是这样 – paulj3000 2010-03-02 23:43:17

1

我有同样的错误。

原来,在〜/ .hgrc

#verbose = True 

固定的东西注释掉以下行。

来源:https://www.mercurial-scm.org/bts/issue1250

+0

+1,这里同样的问题。我希望我在一小时前阅读过这篇文章:( – Seth 2011-03-06 20:19:04

1

我使用的ScriptAlias,改名hgweb.cgi到的index.cgi,也没有冗长打开,但仍然可以看到500内部服务器错误。

随着

hg clone http://ip.address.here:8880/hg/Lavanya2/test/ . 

我在Apache中

[Wed Jul 28 11:52:27 2010] [error] [client ip.address.here] malformed header from script. Bad header=8 changesets found: index.cgi 
+0

我得到了这个工作(最后!)。我不得不从我试图克隆的存储库的hgrc文件中除去debug = true设置。 – 2010-07-29 17:02:53