9

Mercurial を IIS 7.5 (Win 7 x64) でホストしようとしていますが、修正できないエラーが発生し続けます。

ここで Jeremy Skinners のチュートリアルに従いました: Mercurial on IIS7

Mercurial 1.7.2 を使用しているので、hgwebdir の代わりに hgweb を使用します。

私はpythonをインストールして動作させています。Mercurial 用の IIS アプリケーションをhttp://localhost/hg -> ディレクトリ c:\inetpub\wwwroot\hgにセットアップしました

テンプレート ディレクトリを c:\inetpub\wwwroot\hg に配置しました library.zip ファイルを c:\inetpub\wwwroot\hg に抽出しました

サイトにアクセスすると、エラーが表示されます -> File "C:\inetpub\wwwroot\hg\hgweb.cgi", line 15, in from mercurial import demandimport; demandimport.enable() ImportError: mercurial という名前のモジュールがありません ".

このエラーを検索すると、次の回答が見つかりました: https://stackoverflow.com/questions/2123798/

受け入れられた回答に続いて、hgweb.cgi を次のように変更しました。

#!c:/python/python26/python.exe
#
# An example hgweb CGI script, edit as necessary
# See also https://www.mercurial-scm.org/wiki/PublishingRepositories

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"

# Uncomment and adjust if Mercurial is not installed system-wide:
import sys; sys.path.insert(0, "c:\inetpub\wwwroot\hg")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb('c:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)

それを行った後、私はまだ同じエラーが発生します。他に何をすべきかわかりません。どんな助けでも大歓迎です。

Edi 1: リクエストによる c:\inetpub\wwwroot\hg のスクリーン ショット:私のHgディレクトリ

4

4 に答える 4

15

私はこの1週間ほど、これと同じ設定に苦労してきました。

最近、IISでの水銀の動作にいくつかの重要な変更が加えられたように見えます。そのため、上記のJeremySkinnersチュートリアルへのリンクは1.7.2では問題があります。

これは 私がいくつかの異なることをしなければならなかったことがわかった最近のリンクです。

これらの手順は1.7.x用です。1.8.xを使用している場合は、以下のEthanのコメントを必ずお読みください。

/contrib/win32/hgwebdir_wsgi.pyのコメントの指示に従いました。

  • Python2.6.6をインストールします

  • PythonをシステムPATHに追加します(作業を楽にするため)

  • pywin32 v214をインストールします(Pythonインストーラーを使用してください。重要です!)(これはPython 2.6に対して構築されていることに注意してください)

  • isapi_wsgiをインストールします

  • Mercurialソースパッケージ
    Extractをダウンロードし、実行します

    python setup.py --pure build_py-c-d。build_ext -i build_mo --force
    python setup.py --pure install --force
    
  • hgwebdir_wsgi.pyを/contrib/win32からホストするフォルダーにコピーします。

  • ホストするフォルダーにhgweb.configファイルを作成します。内容を追加する

    [パス]
    yourRepoName = c:\ yourRepoLocation
    
  • hgwebdir_wsgi.pyを編集して、hgweb.configを指定します。hgがWebサイトのルートである場合、path_prefixは0です。vdir 1の深さに配置する場合は、1などになります。

  • python hgwebdir_wsgi.pyを実行して、isapidll_hgwebdir_wsgi.dllを作成します。コンソールは「インストール完了」を出力する必要があります

  • IISでアプリプールを作成します(マネージコードなし)

  • フォルダをhgwebdir_wsgi.pyと同じフォルダに設定してWebサイトを作成します

  • モジュールタイプのハンドラーを追加し、マッピングとして「*」を使用し、実行可能ファイルとして_hgwebdir_wsgi.dllを選択し、タイプとしてisapimoduleを選択し、名前としてMercurial-ISAPIを選択します(名前は実際には重要ではありません)

  • モジュールの機能権限を編集して、実行を許可します。

web.config(前の2つのステップの場合):

<system.webServer>
<handlers accessPolicy="Read, Execute, Script">
<add name="Mercurial-Isapi" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\inetpub\hgweb\_hgwebdir_wsgi.dll" resourceType="Unspecified" />
</handlers>
</system.webServer>

このすべての後、私はそれを機能させることができました。

最後に、MFC71.dllをwindows / system32にコピーしましたが、それが必要かどうかはわかりません http://python.net/crew/skippy/win32/

私がここに持っているものと上記のリンクにあるものの主な違いは、私が「純粋なpython」のMercurialインストールを行ったことですが、私は完全なpython初心者なので、よくわかりません。また、プレーンウィンドウのmsisではなく、pywinとisapi_wsgiの「pythonインストール」を実行しました。

于 2010-12-06T14:49:57.870 に答える
3

Adam Boddington は、現在動作する更新されたインストールの説明を書いています。r2

于 2011-03-25T15:19:12.877 に答える
3

現在のバージョンの Mercurial (1.8.x) と現在のバージョンの Python (2.7) を使用して、IIS7 で Mercurial リポジトリをセットアップする方法に関する最新の手順を書きました。

これはあなたのために働くでしょう、そしてあなたがそれを使って答えを上(または下)に投票していただければ幸いです;))。

于 2011-06-28T05:14:21.017 に答える
1

以前はエラーが多かったです。すべての python、pywin32、isapi_wsgi をアンインストールし、上記のように dinstall しました。それはそよ風のように働きました。リュック

于 2010-12-30T15:19:41.560 に答える