在 Debian Wheezy 服务器上设置 Mercurial 不太好用

在 Debian Wheezy 服务器上设置 Mercurial 不太好用

我正在使用 Debian Wheezy,并且想要设置一个 Mercurial 服务器。

这是我所做的:

1.因此,我首先创建了以下目录:

/var/www/hg
/var/www/hg/cgi-bin
/var/repo
/var/repo/hg

2.文件夹内/var/www/hg/cgi-bin有两个文件:

2.1.hgweb.config:

[web]
style = coal
allow_push = *
push_ssl = false
[paths]
/=/var/repo/hg/**

2.2.hgwebdir.wsgi:

config = "/var/www/hg/cgi-bin/hgweb.config"
import cgitb; cgitb.enable();
from mercurial import demandimport
from mercurial.hgweb import hgweb
application = hgweb(config)

3.然后我在 apache2 的站点中创建了一个条目并重新启动它:

<VirtualHost *:80>
    ServerName hg.********.com
    DocumentRoot /var/www/hg
    WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1
</VirtualHost>

4.之后,我在这里添加了一个名为“default”的存储库:/var/repo/hg/default

问题

因此根据这个,我应该有 a.) mercurial 用户界面,因为脚本中调用了“hgweb”和 b.) 我应该能够从 TortoiseHg 中提取。但这些都不起作用。相反,我得到了一个错误 404当我调用域名时。

有任何想法吗?

编辑:

这似乎就是造成问题的那一行:

WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1

因为当我删除 时\$1,它有点起作用了。它实际上不起作用,但它不再显示错误 404。那么我可以用什么来正确表达这个正则表达式呢?

答案1

我尝试了不同的 URL 后找到了答案:

这行

WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1

应替换为以下行:

WSGIScriptAlias / /var/www/hg/cgi-bin/hgwebdir.wsgi/

一切正常:)

相关内容