5

Scriptaliasを使用してMercurialHGリポジトリをホストしようとしました。

ScriptAlias / hg / "htdocs / hgwebdir.cgi"

Chromeにアクセスすると、cgiファイルの内容が表示されます。IEではレンダリングされますが、画像とリンクは表示されません。どちらの場合も、表示したいリポジトリは表示されません。

VisualSVNでこれを機能させることができた人はいますか?また、Windows認証とhttpsを使用している場合、これは機能しますか?

4

4 に答える 4

6

これは、mod_wsgi(fast!)、結合されたリポジトリディレクトリを使用した代替セットアップであり、VisualSVNサーバーGUIからMercurialリポジトリレベルのアクセスを管理できます。

Apache 2.2 Win32用のmod_wsgi.soをダウンロードし、「C:\ ProgramFiles \ VisualSVNServer\bin」に配置します。

Mercurialインストール(contribディレクトリ)から "C:\ Program Files \ VisualSVNServer\"にhgwebdir.wsgiをコピーします。次のようになります。

import sys
sys.path.insert(0, "C:\Program Files\Mercurial\library")
from mercurial.hgweb.hgwebdir_mod import hgwebdir
application = hgwebdir('hgweb.config')

構成ファイル「C:\ ProgramFiles \ VisualSVNServer\hgweb.config」を作成します。

[paths]
/ = c:/Repositories/*

以下を「C:\ ProgramFiles \ VisualSVNServer \ conf\httpd-custom.conf」に貼り付けます。httpd.confのセクションに基づいてAuth*値を調整する必要があります。

LoadModule wsgi_module bin/mod_wsgi.so
WSGIScriptAlias /hg "hgwebdir.wsgi"

<Location /hg/>
    AuthName "Mercurial Repositories"
    AuthType VisualSVN
    AuthzVisualSVNAccessFile "C:/Repositories/authz-windows"
    AuthnVisualSVNBasic on
    AuthnVisualSVNIntegrated off
    AuthnVisualSVNUPN Off

    SVNParentPath "C:/Repositories/"

    require valid-user
</Location>

Mercurialリポジトリを作成します。

hg init C:\Repositories\hgtest

これで、ブラウザから/ hgにアクセスし、VisualSVNサーバーツールを使用してリポジトリレベルの認証を管理できるようになります。

于 2010-04-10T01:10:55.563 に答える
2

Python 2.6がインストールされて動作していると仮定して、これが私が行った手順です。

Apache 2.2 Win32用にビルドされた「mod_cgi.so」を入手して、「C:\ ProgramFiles \ VisualSVNServer\bin」に配置します。

以下を「C:\ ProgramFiles \ VisualSVNServer \ conf\httpd-custom.conf」に貼り付けます

LoadModule cgi_module bin/mod_cgi.so
ScriptAliasMatch ^/hg(.*) "cgi-bin/hgweb.cgi$1"

cgi-binディレクトリ「C:\ ProgramFiles \ VisualSVNServer\cgi-bin」を作成します。そして、その中にhgweb.cgiを配置します。次のようになっていることを確認してください。

#!c:/Python26/python.exe -u

import sys
sys.path.insert(0, "C:\Program Files\Mercurial\library")

import cgitb
cgitb.enable()

from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi

application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

cgi-binディレクトリにhgweb.configというファイルを作成します。

[paths]
/ = c:/HgRepositories/*

「C:\ ProgramFiles \ Mercurial \templates」を「C:\ ProgramFiles \ Mercurial \ library\templates」にコピーしました。

「C:\HgRepositories」フォルダーと「hginitc:\ HgRepositories\test」を作成します。

VisualSVNサーバーを再起動し、ブラウザを開いて、Mercurialリポジトリをお楽しみください。

于 2010-04-09T21:00:32.303 に答える
0

Mercurialのバージョン1.6以降、hgwebdir.wsgiスクリプトはhgweb.wsgiスクリプトと統合されました。これらの方向でhgwebdir.wsgiが参照されている場合は常に、代わりにhgweb.wsgiスクリプトに置き換えることができます。

https://www.mercurial-scm.org/wiki/modwsgi

于 2012-03-26T14:40:42.520 に答える
-1

REMOTE_USER変数がCGIに渡される前に、Webサーバーがそれらを処理する場合は、さまざまな認証モジュールとhttpsモジュールの背後でhgwebdirを正常に実行できます。

visualsvnはわかりませんが、ScriptAliasはApacheによく似ています。.cgiのAddHandler行が必要ですか?

于 2010-03-11T23:24:33.070 に答える