Configurando o Mercurial em um servidor Debian Wheezy não está funcionando

2

Eu estou usando o Debian Wheezy e quero configurar um servidor Mercurial.

Aqui está o que eu fiz:

1. Então, eu criei os seguintes diretórios:

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

2. Dentro /var/www/hg/cgi-binpasta são dois arquivos:

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. Então criei uma entrada nos sites do apache2 e reiniciei:

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

4. Depois disso, adicionei um repositório chamado "default" aqui:/var/repo/hg/default

Questão

Então, de acordo com isso, eu deveria ter um.) A interface do usuário mercurial porque "hgweb" é chamado no script eb.) Eu deveria ser capaz de puxar do TortoiseHg. Mas nada disso funciona ainda. Em vez disso, recebo um erro 404 quando eu chamo o domínio.

Alguma ideia?

Editar:

Esta parece ser a linha que faz o problema:

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

Porque quando eu removo \$1, funciona. Realmente não funciona, mas não exibe mais um erro 404. Então, o que posso usar para expressar esse regex corretamente?

bytecode77
fonte

Respostas:

1

Eu descobri depois de tentar URLs diferentes:

Está linha

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

deve ser substituído por esta linha:

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

E tudo funciona bem :)

bytecode77
fonte