IIS 8でDjangoをセットアップする方法は?


11

過去に、Windows 8 Developer PreviewのIIS 8でDjangoを実行しようとしました。Windows 8のConsumer Previewが公開されたので、IIS内でDjangoをセットアップするための詳細な手順を入手できるかどうか疑問に思いました。

このプロセスをどうやって行けばいいのか-どこから始めればいいのかわかりません 特定のISAPIモジュールが必要ですか?

回答:


19

このプロセスは簡単ではありませんが、次の手順を使用して可能です。

  1. まず、Python 2.6をダウンロードしてインストールします。(Python 2.7ではなくPython 2.6を推奨する理由は、PyISAPIeモジュールでサポートされている最新のPythonバージョンがPython 2.6であるためです。)Pythonをインストールする場所を書き留めます(C:\Python26正しく覚えていればデフォルトで)。

  2. [コンピューター]を右クリックし、[プロパティ]をクリックします。左側の[システムの詳細設定]をクリックします。

    ここに画像の説明を入力してください

  3. [詳細設定]タブをクリックし、[環境変数]ボタンをクリックします。下のリストボックスで[パス]を見つけます。

    ここに画像の説明を入力してください

  4. 「編集...」ボタンをクリックして、最後の変数値に移動して挿入します;C:\Python26(セミコロンとPythonをインストールしたパス):

    ここに画像の説明を入力してください

  5. [OK]をクリックして、すべてのダイアログを閉じます。

  6. 次に、ここからPyISAPIeの最新バージョンをダウンロードします。アーカイブの内容をどこかに抽出し、ディレクトリを開きます。

  7. 次に、コントロールパネルを開き、[プログラムと機能]を​​クリックして、左側の[Windowsの機能の有効化または無効化]をクリックします。

    ここに画像の説明を入力してください

  8. [インターネットインフォメーションサービス]-> [World Wide Webサービス]-> [アプリケーション開発機能]を参照し、ISAPI拡張機能がオンになっていることを確認します。

    ここに画像の説明を入力してください

  9. 変更を適用し、IISマネージャーを開きます。[ハンドラーマッピング]アイコンをダブルクリックします。

    ここに画像の説明を入力してください

  10. 右側の[モジュールマッピングの追加]をクリックします。表示されるダイアログで、次の情報を入力します。

    • リクエストパス: *
    • モジュール: IsapiModule
    • 実行可能 ファイル(オプション):[PyISAPIeを抽出したパスを参照して選択PyISAPIe.dll]
    • 名前: PyISAPIe経由のPython


    次のようになります。

    ここに画像の説明を入力してください

  11. ダイアログを閉じる前に、 [要求の制限]をクリックし [要求がマップされている場合のみハンドラーを呼び出す:]のチェックを外して、[OK]をクリックします。また、[OK]をクリックして[モジュールマッピングの追加]ダイアログを閉じます(ISAPIおよびCGI制限リストに許可エントリを含む拡張機能を追加するかどうかを確認するメッセージが表示されたら[はい]をクリックします)。

    ここに画像の説明を入力してください

  12. 次のステップはDjangoをダウンロードすることです。アーカイブの内容をどこかに抽出します(場所に注意してください)。コマンドプロンプトを開き(Win+ を押してR入力しcmd、を押すことでこれを実行できますEnter)、cdDjangoを抽出した場所を入力します:

    ここに画像の説明を入力してください

  13. を押してEnter入力しcd dj、を押しTabます。これでDjangoフォルダーへのパスが完成し、を押しEnterてディレクトリを開くことができます。次に入力しpython setup.py installます:

    ここに画像の説明を入力してください

  14. 次に、Djangoプロジェクトを作成する必要があります。例として、プロジェクトをの下に作成しますC:\Django。コマンドウィンドウで、以下のコマンドを入力し、続けてEnter

    • cd C:\
    • mkdir Django
    • cd Django
    • python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test


    これにより、「test」という名前のプロジェクトが作成されます。

  15. プロセスが正常に完了すると、最後の残りのタスクはPyISAPIeをDjangoに接続することです。これを行うには、PyISAPIeを抽出したディレクトリに戻り、Httpディレクトリを探します。内部はファイルですIsapi.py。テキストエディタで開き、内容を次のものに置き換えます。

    from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
    from Http.WSGI import RunWSGI
    from Http import Env
    import os, sys
    
    sys.path.append('C:\Django')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings'
    
    def Request():
    
        PathInfo = Env.PATH_INFO
    
        if not PathInfo.startswith('/'):
            return True
    
        for Excl in ['/media']:
            if PathInfo.startswith(Excl):
                return True
    
        return RunWSGI(DjangoHandler(), Base='/')
    
  16. HttpディレクトリC:\Python26\Lib\site-packages(またはPythonを別の場所にインストールした場合は適切なディレクトリ)をコピーします。

  17. IISを再起動します(IISマネージャーの右側にある[再起動]をクリックしてこれを実行できます)。

    ここに画像の説明を入力してください

  18. すべてが正常に機能した場合、http:// localhostにアクセスして新しいDjangoサイトを表示できるはずです。

    ここに画像の説明を入力してください


さらなる注意と追加

  • それ以来、私はPython 2.7用のPyISAPIe(32ビットと64ビットの両方)をコンパイルし、ここにファイルをアップロードしました:http ://www.box.com/s/a5fb1b21fcdf738d2590

  • 手順6では、pyisapie.dllIISが少なくとも読み取りアクセス権を持つディレクトリにあることを確認する必要があります。これを考慮しないと、奇妙なエラーが発生します。


2
血まみれの素敵な答えジョージ。+1
ケブ

1
この非常に良い答えは私を救うだけです
トリンホアンヌー

感謝しますが、機能させるのに苦労しています。IIS Webサイトを作成することは言及していません([サーバー]> [サイト]の下)。する必要はありませんか?デフォルトのWebサイト/ DefaultAppPoolを使用していますか?もしそうなら、ウェブサイトのルートとして何を示しますか?また、DLLが機能していることを確認するにはどうすればよいですか?Httpの下の.pyファイルはコンパイルされないため、リクエストがPython / Djangoによって処理されるとは思わない。
エリックライベンガス

1

このブログ投稿内でIIS8にDjangoをインストールする方法の詳細なガイドがあります:

IISへのDjangoのインストール:ステップバイステップチュートリアル

要するに、これらの手順を実行する必要があります。

  • WindowsにPythonをインストールする
  • Djangoのインストール
  • Djangoプロジェクトのインストール
  • テストHTTPサーバーの実行
  • FastCGIサーバーの構成と実行
  • FastCGIアプリケーションを実行するためのIISの構成
  • 静的リソースとメディアディレクトリの構成
  • データベースに関する注意(一部のデータベースと互換性のあるドライバーに関する注意)
  • トラブルシューティング(トラブルシューティング方法に関する注意)

お役に立てば幸いです!


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.