it-swarm-ja.com

DebianWheezyサーバーでの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つのファイルがあります。

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)

次に、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。)スクリプトで「hgweb」が呼び出されるため、Mercurialユーザーインターフェイスが必要です。b。)TortoiseHgからプルできるはずです。しかし、これはまだ機能しません。代わりに、ドメインを呼び出すとエラー404が発生します。

何か案は?

編集:

これが問題の原因のようです。

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

\$1を削除すると、ちょっと機能するからです。実際には機能しませんが、エラー404は表示されなくなります。では、この正規表現を正しく表現するために何を使用できますか?

2
bytecode77

別のURLを試した後、私はそれを理解しました:

この行

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

次の行に置き換える必要があります。

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

そして、すべてが正常に動作します:)

1
bytecode77