web-dev-qa-db-ja.com

IISでMercurialとhgwebdirを設定するにはどうすればよいですか?

IISでhgwebdirを動作させる方法についての適切な指示を探してずっと探していましたが、あまり価値のあるものは見つかりませんでした。

Mercurial wikiには これは「段階的」 がありますが、あまり良くありません。 thisthis もありますが、それらを開始する場所に至るまでの適切な手順が見つかりません。

72
Kevin Berridge

昨日、新しい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再書き込みを設定するようないくつかの特別な素晴らしいステップがあります。

49
jwanagel

Mercurial 1.5.2がリリースされて以来、これらのチュートリアルは正確に機能しないようです。 1つには、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

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

34
Ken Pespisa

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

Active Directoryの統合、プッシュ/プルのセキュリティ特権の設定、テンプレートのカスタマイズなど、IISを最初から使用して実行する4部構成のブログ投稿を行いましたが、ここではそれを再現しますが、 Mercurialは本当にLinux/Apacheでホストされるように設計されていたので、長い間、うんざりしていました。

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

12
BenAlabaster

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

11
Ben Schwehn

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

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

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

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

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

Pythonが機能していることをテストする良い機会です。test.cgiという新しいHgフォルダーにファイルを作成します。次の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 repoを新しいディレクトリにクローンします:https://www.Mercurial-scm.org/repo/hg/
  • hgwebdir.cgiをWebディレクトリにコピーします:クローンされたhgリポジトリからc:\ inetpub\wwwroot\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
11
Clay Lenhart

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

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

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

3
Aaron Watters

私はこの1週間ほどMercurial 1.7.2のこのセットアップで戦っています。それを機能させるためには、上記の記事とは少し異なる方法で行う必要がありました。

グーグルが私をここに連れてきてくれたので、ここに投稿します...

詳細な手順 ここに投稿

これらの手順これら(ソース内) の組み合わせを使用しました

主な違いは、私が "Mercurialの純粋なpython"インストール を行わなければならなかったことです。そうしないと、欠落しているdllについて文句を言うでしょう、そしてpywinとisapi- wsgi。 (おそらくこれは経験豊富なpython開発者には明らかですが、私はpython初心者なので、私にとってはニュースでした)

これが誰かを助けて、私がものを作るだけではないことを願っています(私が言ったように、python newbie)かもしれません)

2
Brook

「...モジュールをロードできません...」というタイプのエラーが発生し、いくつかの読み取りの後、MercurialフォルダーのLibrary.Zipファイルを無視して、代わりにC:\のファイルを使用することが重要でした。 Program Files(x86)\ TortoiseHgフォルダー。

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

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

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

1
Tony Yates

Hg赤い本には、他の場所で見たよりもはるかに優れた一般的な説明が含まれています。 IIS具体的ではありませんが、非常に優れています:

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

1
Kevin Berridge