【问题标题】:hgweb server abort: HTTP Error 404: Condition Interceptedhgweb 服务器中止:HTTP 错误 404:条件被拦截
【发布时间】:2023-03-27 00:18:01
【问题描述】:

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

hg clone http:// localhost /hg/proj

完美运行。 但是当我尝试访问另一台 Linux 机器上的服务器时,我收到了以下错误消息:

hg clone http://myhgserver/hg/proj

中止:HTTP 错误 404:条件被拦截

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

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

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

./hg --version Mercurial分布式单片机(版本3.0+4-75aaae8ad660+20140613)

克隆命令给出了同样的错误: 中止:HTTP 错误 404:条件被拦截

我已经花了差不多一整天了,现在已经是半夜了,还是找不到答案。

其他人见过这样的问题吗?

建明

【问题讨论】:

  • 我的问题似乎出在客户端。当我测试另一台公共服务器时,我收到了相同的错误消息:hg clone hg.mozilla.org/mozilla-central/src 我收到了相同的错误消息:abort: HTTP Error 404: Not Found。

标签: linux http mercurial apache2 hgweb


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多