Eu descobri depois de tentar URLs diferentes:
Esta linha
WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\
deve ser substituído por esta linha:
WSGIScriptAlias / /var/www/hg/cgi-bin/hgwebdir.wsgi/
E tudo funciona bem:)
Estou usando o Debian Wheezy e quero configurar um servidor Mercurial.
Veja o que eu fiz:
1. Primeiramente, criei os seguintes diretórios:
/var/www/hg
/var/www/hg/cgi-bin
/var/repo
/var/repo/hg
2. Dentro da pasta /var/www/hg/cgi-bin
há 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\
</VirtualHost>
4. Depois disso, adicionei um repositório chamado "default" aqui: /var/repo/hg/default
Pergunta
Então, de acordo com isso, eu deveria ter um.) A interface do usuário mercurial porque "hgweb" é chamado no script e b.) Eu deveria ser capaz de puxar do TortoiseHg. Mas nada disso funciona ainda. Em vez disso, obtenho um erro 404 quando eu chamo o domínio.
Alguma idéia?
Editar:
Esta parece ser a linha que causa o problema:
WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\
Porque quando eu removo o \
, funciona. Realmente não funciona, mas não exibe mais um erro 404. Então, o que posso usar para expressar esse regex corretamente?