hgweb服务器中止:HTTP错误404:已拦截的条件

时间:2014-06-14 03:34:46

标签: linux http mercurial apache2 hgweb

我在Linux服务器中使用hgweb.cgi cgi脚本设置了一个http服务器。 我在服务器中建立了一个mercurial存储库。我可以毫无问题地从Windows机器克隆存储库。我可以在任何浏览器中查看服务器。我可以从我的localhost克隆存储库:(服务器)

hg clone http:// localhost /hg/proj

完美无缺。 但当我尝试访问另一台Linux机器上的服务器时,我收到此错误消息:

hg clone http://myhgserver/hg/proj

abort:HTTP错误404:条件已截止

我在apache2 Web服务器上的error_log文件中找不到任何错误消息。

首先,我怀疑我在客户端使用旧版本的hg(1.4)。 我的服务器端是hg 2.6.3。
然后我绑定在我的主目录中安装最新的mercurial(我没有权限系统目录)

我使用" make local"命令在本地安装mercurial包。

./ hg --version Mercurial Distributed SCM(版本3.0 + 4-75aaae8ad660 + 20140613)

clonning命令给出了同样的错误: 中止:HTTP错误404:已截止的条件

我花了差不多一整天,现在是半夜,仍然找不到任何答案。

其他人都遇到过这样的问题?

克敏

1 个答案:

答案 0 :(得分:0)

经过一夜的睡眠,我解决了问题。 基本上,hg程序缺少将主机名解析为IP地址的能力。 由于我的服务器和客户端计算机位于同一LAN上,因此没有连接或防火墙问题。

我可以从我的客户端PING到我的服务器没有任何问题。我可以运行host命令: 主机myhgserver它将为您提供整个IP地址和完全限定的域名。如果我使用IP地址而不是主机短名称,那么hg工作正常。

我认为需要的是向hg客户端程序添加几行代码,以便它可以从别名中找到服务器。