73

IIS で hgweb を動作させる方法に関する適切な手順を探していましたが、あまり価値がありませんでした。

Mercurial wikiにこの「ステップバイステップ」がありますが、あまり良くありません。thisthisもありますが、繰り返しになりますが、それらを開始するための適切な手順が見つかりません。

4

11 に答える 11

49

昨日、新しい Mercurial インスタンスをインストールする必要がありました。1.7 の更新された手順は次のとおりです。

  1. Mercurial をインストールします(これらの手順は 1.7 でテストされています)。
  2. Python をインストールします (Mercurial 1.7 の場合、x86 バージョンの Python 2.6.6 を使用する必要があります)。
  3. Mercurial ソースから hgweb.cgi ファイルをダウンロードする必要があります。以下を実行してソースをダウンロードできます。hg clone https://www.mercurial-scm.org/repo/hg/
  4. Web アプリケーション フォルダーとなるフォルダーを作成します。このフォルダに次の 3 つをコピーする必要があります。

    • hgweb.cgi ファイル
    • 「C:\Program Files\Mercurial」フォルダの Library.zip の内容
    • 「C:\Program Files\Mercurial」の Templates フォルダ
  5. IIS で Python がセットアップされていることを確認する必要があります。

    • 次の方法で CGI を有効にします: [コントロール パネル] -> [Windows の機能の有効化または無効化] -> [役割] -> [Web サーバー (IIS)] -> [役割サービスの追加] -> [CGI の確認]
    • IIS で新しい Web サイトを作成し、物理パスが上で作成したフォルダーであることを確認します。
    • 新しい Web サイトのハンドラー マッピングで、[スクリプト マップの追加] を選択します。リクエスト パスに*.cgi、実行可能ファイルにc:\Python26\python.exe -u "%s"、名前 にPythonを入力します。
  6. また、以下のような内容の「hgweb.config」という名前のファイルを作成する必要があります。ファイル内のパスは、Mercurial リポジトリを保存するドライブ上の場所である必要があります。

    [コレクション]
    c:\Mercurial\repos = c:\Mercurial\repos

  7. hgweb.cgi ファイルを編集し、hgweb.config へのパスを設定する行を次のように変更します (hgweb.config ファイルがある場合):

    config = "C:\Mercurial\hgweb.config"

  8. ここで、ブラウザを開いてhttp://localhost/mercurial/hgweb.cgi (または IIS で設定した適切な URL パス) に移動すると、Mercurial Repositories ページが表示されます。

また、Jeremy Skinners のブログ投稿もご覧ください。少し古くなっていますが、よりクリーンな URL の URL 書き換えを設定するなど、いくつかの特別な手順があります。

于 2009-05-20T09:12:31.933 に答える
34

Mercurial 1.5.2 がリリースされて以来、これらのチュートリアルは正しく動作しないようです。まず、hgwebdir.cgi が削除され、hgweb.cgi に置き換えられました。

私にとって最も効果的な手順は、eworldui.netにあります。

http://www.eworldui.net/blog/post/2010/04/08/Setting-up-Mercurial-server-in-IIS7-using-a-ISAPI-module.aspx

これらの手順は、IIS 7 以降を対象としています。IIS 6 でこれをセットアップしている場合は、Win2k3 および IIS 6.0 向けの同様の手順を書きました。

http://partialclass.blogspot.com/2010/05/setting-up-mercurial-server-on-win2k3.html

更新: これが機能するようになって間もなく、BitBucket が料金体系を変更して、無料で無制限のプライベート ホスティングを提供するようになったことを知りました: https://bitbucket.org/ . 私が最初にこのプロジェクトに取り組んでいたとき、私はハートビートでそれを選んだでしょう.

于 2010-05-04T16:08:00.367 に答える
12

Vampire Basicでのブログ投稿は良い出発点であることがわかりましたが、私が求めていたものについて十分に詳細に説明することはできませんでした。

これについては、Active Directory の統合、プッシュ/プルのセキュリティ権限の設定、テンプレートのカスタマイズなど、IIS をゼロから起動して実行するための 4 部構成のブログ投稿を行いました。 Mercurial が実際には Linux/Apache でホストされるように設計されていたということは、長い間話が逸れてしまいました。

http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html

于 2010-07-23T17:44:40.700 に答える
11

ここにはかなり優れた包括的なチュートリアルがあります: http://vampirebasic.blogspot.com/2009/06/running-mercurial-on-windows.html

于 2009-07-19T16:09:05.083 に答える
11

以下は、IIS6 で hgwebdir.cgi をセットアップするためにかなりの量の調査を行った後に行ったことです。以下のサイトを参考にしています。

サーバーに次のものをインストールする必要があります。

  • Mercurial (バージョン 1.5 を使用)
  • パイソン 2.6。Python のバージョンは、インストールされている Mercurial のバージョンによって異なります。Mercurial 1.5 は Python 2.6 を使用します。x64 を実行している場合でも x86 をインストールします。

私にとっての手順は次のとおりです。

  • Web サイトのディレクトリを作成します。c:\inetpub\wwwroot\hg を使用しました。
  • IIS で、hg のフォルダーを右クリックし、プロパティを選択して、[ホーム ディレクトリ] タブを選択します。
  • [アプリケーションの作成] ボタンをクリックします。実行権限を「スクリプト」に設定します。
  • 引き続き [ホーム ディレクトリ] タブで、[構成] ボタンをクリックします。[アプリケーション構成] ポップアップで、[追加] ボタンをクリックしてアプリケーション拡張機能を追加します。実行可能ファイルは c:\Python26\python.exe -u "%s" "%s" です。拡張子は .cgi です。「動詞」を「制限: GET、HEAD、POST」に設定します。[スクリプト エンジン] と [ファイルが存在することを確認する] の両方を確認します。
  • [ディレクトリ セキュリティ] タブで、[認証とアクセス制御] セクションの [編集] ボタンをクリックします。すべての認証方式のチェックを外し、「基本認証」方式にチェックを入れます。必要に応じて、既定のドメインを Active Directory ドメインに設定します。
  • IIS で、左パネルの Web Service Extensions フォルダーをクリックします。[新しい Web サービス拡張機能を追加] リンクをクリックします。拡張機能名は Python である必要があります。必要なファイルは c:\Python26\python.exe -u "%s" "%s" です。新しい拡張子が「許可」されていることを確認してください。

ここで、Python が機能していることをテストします。新しい Hg フォルダーに test.cgi という名前のファイルを作成します。次の Python コードを貼り付けます。

print 'Status: 200 OK'
print 'Content-type: text/html'
print

print '<html><head>'
print ''
print '<h1>It works!</h1>'
print ''
print ''

たとえば、http://localhost/hg/te​​st.cgiなどのサイトにブラウザーを開きます。

「うまくいきました!」と表示されるはずです。ブラウザで。

次に、hgwebdir を機能させましょう。

  • test.cgi を削除
  • hg リポジトリを新しいディレクトリにクローンします。https://www.mercurial-scm.org/repo/hg/
  • hgwebdir.cgi を Web ディレクトリ (c:\inetpub\wwwroot\hg\) に複製した hg リポジトリからコピーします。
  • ファイルを編集して変更する
application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

application = hgwebdir('c:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)
  • Mercurial ディレクトリ c:\Program Files\Mercurial\ にある Library.zip ファイルを Web ディレクトリ c:\inetpub\wwwroot\hg\ に解凍します。
  • テンプレート ディレクトリを c:\Program Files\Mercurial\templates\ から c:\inetpub\wwwroot\hg\templates\ にコピーします。
  • Web ディレクトリに hgweb.config というファイルを作成します。

今こそ、それをテストする良い機会です。ブラウザーで次の URL に移動します。http://localhost/hg/hgwebdir.cgi

  • hgweb.config を編集し、以下を貼り付けます。
[collections]
\\server\share$\Hg\ = \\server\share$\Hg\
[web]
allow_push = *
push_ssl = false

これらはすべて私の好みです。たとえば、\\server\share$\Hg のサブディレクトリにリポジトリがあります。Web アプリは、ブラウザーを介してログインしているユーザーのアクセス許可の下で実行されるため、共有に対する読み取り/書き込みアクセス許可が必要になります。

最後のステップは、最初にレポをクローンするときに発生する可能性がある長い接続を許可することです。次のコマンドを実行して、タイムアウトを 50 分に増やします。

cd \inetpub\AdminScripts\
cscript adsutil.vbs GET /W3SVC/CGITimeout 
cscript adsutil.vbs SET /W3SVC/CGITimeout 3000
于 2010-04-06T09:40:00.920 に答える
3

Mercurialを使用して、Mercurialリポジトリのクローンを作成します。

hg clone https://www.mercurial-scm.org/repo/hg/

トップレベルにhgwebdir.cgiがあります。他のcgiスクリプトと同じようにインストールする必要があります。

于 2009-05-04T21:39:24.083 に答える
2

この 1 週間ほど、mercurial 1.7.2 のセットアップと格闘してきました。動作させるには、上記の記事とは少し異なる方法を取らなければなりませんでした。

グーグルが私をここに連れ戻し続けたので、ここに投稿します....

ここに投稿された完全な手順

これらの指示とこれらの組み合わせに従いました(ソース内)

主な違いは、mercurial の「純粋な python」インストールを行う必要があったことです。そうしないと、DLL が見つからないというエラーが表示され、pywin と isapi-wsgi に「python インストーラー」を使用することが重要であることがわかりました。(経験豊富な python 開発者にとっては明らかかもしれませんが、私は python 初心者なのでニュースでした)

これが誰かの助けになることを願っています。

于 2010-12-06T15:05:57.500 に答える
1

「...モジュールを読み込めません...」というタイプのエラーが発生しました。しばらく読んだ後、MercurialフォルダーのLibrary.zipファイルを無視し、代わりにC:\のファイルを使用することが重要でした。プログラムファイル(x86)\TortoiseHgフォルダー。

このガイドで#6として見つけたヒント:

http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html

これが誰かを助けることを願っています...

于 2010-12-10T19:54:50.160 に答える
1

hg red book には、私が他の場所で見たものよりもはるかに優れた一般的な指示が含まれています. これらは IIS 固有のものではありませんが、非常に優れています。

http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi

于 2009-08-11T21:35:18.773 に答える
-1

HgLabを試すことができます。これは正確には hgwebdir ではありません。むしろ、プッシュおよびプル サーバーとリポジトリ ブラウザーを備えた純粋に管理された Mercurial 実装です。

于 2012-10-10T08:17:27.860 に答える