Das Einrichten von Mercurial auf einem Debian Wheezy-Server funktioniert nicht richtig

1282
bytecode77

Ich verwende Debian Wheezy und möchte einen Mercurial-Server einrichten.

Folgendes habe ich getan:

1. Also habe ich zuerst die folgenden Verzeichnisse erstellt:

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

2. Innerhalb des /var/www/hg/cgi-binOrdners befinden sich zwei Dateien:

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. Dann habe ich einen Eintrag in die Sites von apache2 erstellt und neu gestartet:

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

4. Danach habe ich hier ein Repository mit dem Namen "default" hinzugefügt:/var/repo/hg/default

Frage

Demnach hätte ich a.) Die mercurial-Benutzeroberfläche, weil "hgweb" im Skript aufgerufen wird und b.) Ich sollte TortoiseHg abrufen können. Aber das funktioniert noch nicht. Stattdessen erhalte ich eine Fehlermeldung 404, wenn ich die Domäne anrufe.

Irgendwelche Ideen?

Bearbeiten:

Dies scheint die Zeile zu sein, die das Problem verursacht:

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

Denn wenn ich das entferne \$1, funktioniert es irgendwie. Es funktioniert nicht wirklich, aber es wird kein Fehler 404 mehr angezeigt. Was kann ich also verwenden, um diese Regex richtig auszudrücken?

2

1 Antwort auf die Frage

1
bytecode77

Ich habe es herausgefunden, nachdem ich verschiedene URLs ausprobiert hatte:

Diese Linie

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

sollte durch diese Zeile ersetzt werden:

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

Und alles funktioniert gut :)