HgWebDir unter lighttpd


Heute mal ein kleiner Trick, wie man hgwebdir.cgi problemlos unter lighttpd zum Laufen bekommt, da es ein paar kleine Tricks braucht. Aber eigentlich ist es ganz einfach.

Also zuerst sollte man sich das Script herunterladen. Ich lade es in /var/www/hg/ wobei /var/www/ mein Document-Root ist.

Danach muss man ein paar Zeilen zur Serverkonfiguration hinzufügen.

server.modules += ("mod_cgi")

$HTTP["url"] =~ "^/hg/" {
	cgi.assign = (
		".cgi" => "/usr/bin/python",
	)
}

Damit führt lighttpd nach einem Restart alle .cgi Dateien in /hg/ mit Python aus. Dies können wir unter http://server-name/hg/hgwebdir.cgi testen. Es sollte eine Seite mit einer leeren Liste und einem Mercurial-Logo erscheinen.

Jetzt kann man im gleichen Verzeichnis in dem auch die Datei hgwebdir.cgi die Datei hgweb.config erstellen.

Diese Datei könnte etwa so aussehen:

[web]
style = gitweb
[paths]
repo1 = /pfad/zum/repository
repo2 = /pfad/zum/anderen/repository

Das Ergebnis sollte dann etwa so wie hier aussehen.

Jetzt ist http://server-name/hg/hgwebdir.cgi aber keine schöne URL und http://server-name/hg/ wäre doch viel schöner. Dazu können wir mod_rewrite verwenden. Die Konfiguration könnte dann etwa so aussehen:

server.modules += ("mod_cgi", "mod_rewrite")

$HTTP["url"] =~ "^/hg/" {
	cgi.assign = (
		".cgi" => "/usr/bin/python",
	)
}
url.rewrite-once = (
	"^/hg(/.*)$" => "/hg/hgwebdir.cgi$1",
)

Das endet aber in einem Chaos. Viel besser hierfür geeignet ist mod_alias. Damit lässt sich das ganze problemlos machen:

server.modules += ("mod_cgi", "mod_alias")

$HTTP["url"] =~ "^/hg/" {
	cgi.assign = (
		".cgi" => "/usr/bin/python",
	)
	alias.url = (
		"/hg" => "/var/www/hg/hgwebdir.cgi"
	)
}

Damit funktioniert alles perfekt. Wichtig ist, dass der volle Pfad zum CGI-Script angegeben wird.

Im Mercurial Wiki finden sich weitere Informationen, wie man Push-Support unter lighttpd einrichtet.

Informationen und Links

Mach' mit, indem du kommentierst, verfolgst was andere zu sagen haben oder von deinem Blog aus verlinkst.


Weitere Artikel
9/11: Die Wahrheit und die offizielle Verschwörungtheorie
Django 1.0 erschienen!

Einen Kommentar schreiben

Nimm dir einen Moment Zeit und sage uns, was du denkst. Du darfst ein bisschen HTML zur Formatierung verwenden.

Kommentare

Sei der Erste, der einen Kommentar schreibt!