IIS10はDjangoをデプロイします

環境:

Python3.10

Django4.0.3

IIS10

WindowsServer2019

1.IISをインストールします

次の図に示すように、CGIを確認してインストールし、他のオプションを選択します。このチュートリアルには、特定のIIS基盤が必要です。

図1

2.プロジェクトの元のコードを割り当てます。djangoはコンパイルする必要はありません

プロジェクトをサーバーC:\ inetpub \ wwwroot \にコピーします。私のプロジェクト名はdjangodomeなので、プロジェクトディレクトリはC:\ inetpub \ wwwroot \ djangodomeです。つまり、mang.pyはC:\ inetpub \wwwroot\にあります。下に示すように、ジャンゴドームを下ろします

注:サーバーにコピーした後、コマンドmanage.py runserverを使用してdjangoを正常に起動できる必要があります。つまり、djangoをインストールする必要があるプロジェクトに必要なすべての依存関係です。

開発マシンでrequirements.txtファイルを生成し、サーバーで実行できます。コマンドは次のとおりです。

#安装支持
pip install pipreqs
#生成
pipreqs . --encoding=utf8 --force
#安装依赖
pip install -r requirements.txt

 図II

 次に、サーバーにpip intsall wfastcgiをインストールします(cmdインストールで十分です)

図2に示すように、インストールしたwfastcgi.pyファイルをデプロイする必要のあるdjangoルートディレクトリにコピーします
。wfastcgi.pyの場所はPythonのlib\site-packagesにあります。自分で見つけてください。

3.IISはWebサイトを追加します

物理パスはdjangoのルートディレクトリに選択され、ポートはそれ自体で設定されます。私は80を使用します

追加が成功すると、以下に示すように、web.config構成ファイルがルートディレクトリに作成されます。

注:構成ファイルは必ずしも同じではありません。実際の状況に応じて削除および変更しました。

完全な構成については、公式Webサイトを参照してください:https://pypi.org/project/wfastcgi/ https://pypi.org/project/wfastcgi/

PYTHONPATH:プロジェクトのルートディレクトリ

DJANGO_SETTINGS_MODULE:プロジェクト名(プロジェクトの下のsetting.pyファイルを表します)

WSGI_LOG:ログ出力ディレクトリ。ルートディレクトリにwsgi.logを作成することを忘れないでください

 <add name="cgihandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe|C:\inetpub\wwwroot\djangodome\wfastcgi.py" resourceType="Unspecified" />

上記の<addタグのscriptProcessor:2つのアドレスが必要です。1つはpython.exeのアドレス、もう1つは「|」で区切られたwfastcgiのアドレスで、 wfastcgi.pyはルートディレクトリにコピーされました。

<configuration>
  <appSettings>
    <!-- Required settings -->
    <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
    <add key="PYTHONPATH" value="C:\inetpub\wwwroot\djangodome" />
    <add key="DJANGO_SETTINGS_MODULE" value="djangoProject.settings" />

    <!-- Optional settings -->
    <add key="WSGI_LOG" value="C:\inetpub\wwwroot\djangodome\wsgi.log" />
    <add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" />
  </appSettings>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <directoryBrowse enabled="true" />
        <handlers>
            <add name="cgihandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe|C:\inetpub\wwwroot\djangodome\wfastcgi.py" resourceType="Unspecified" />
        </handlers>
    </system.webServer>
</configuration>

4.FastCgiを起動します

IISでこのサイトを開く

 次に、cgihandlerを選択します。これはweb.configで構成されたばかりのハンドラーです。必ず、[OK]をクリックしてFastCgiを起動してください。

次に[OK]をクリックします

5. IISでこのサイトを再起動し、アクセスして試してください。インターフェイスが表示されますが、スタイルはありません。

ルートディレクトリに静的なものがない場合は、ルートディレクトリに静的なものを作成します。デフォルトのdjangoプロジェクトにはこのディレクトリがあり、プロジェクトで次のコマンドを実行します。

#收集静态文件到static
python manage.py collectstatic

そして、次の構成ファイルを静的に追加します。動的フォルダーがある場合は、それらも追加します。たとえば、ファイルをアップロードするためのメディアフォルダーもあります。図2を参照してください。

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
      <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
      <handlers>
        <clear/>
   <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
     </handlers>
   </system.webServer>
</configuration>

最後に、バグを解決します。次のような状況が発生した場合は、自分で試してみてください。

1.サードパーティのプラグインを使用したスタイル解除:ルートディレクトリを設定する必要があります

# 静态资源文件配置
STATIC_URL = 'static/'  # 静态资源的路由
#STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)  # 静态资源的路径配置
STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # 指定样式收集目录

その後、実行します

python manage.py collectstatic

2.上記はすべて変更されています。スタイルはまだありません。忘れずに設定してください(デフォルトはTrue)DEBUG=setting.pyのTrue

3. 403にアクセスするときは、setting.pyのALLOWED_HOSTSをデフォルトで[]に設定することを忘れないでください

ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'jike.xiaoxingbobo.top']

4.仮想環境の展開を使用し、仮想環境の展開を使用すると、実行環境のみが変更されますが、プロジェクトディレクトリは引き続き存在します

現在、仮想環境にはまだ問題がありますので、ぜひお試しください。

#安装
pip install virtualenv
pip install virtualenvwrapper-win
#创建虚拟环境
mkvirtualenv djangodome#djangodome虚拟环境名
#cmd查看虚拟环境
workon
#进入虚拟环境
workon djangodome

仮想環境ディレクトリは次のとおりです。C:\ Users \ Administrator \ Envs \ djangodome

仮想環境に入った後

1.wfastcgiをインストールします

2.djangoプロジェクトの依存関係をインストールします。手順は上記のポイント2と同じです。

仮想環境で次のコマンドを実行して、djangoプロジェクトディレクトリに入り、インストールを実行できます。仮想環境での操作はすべて仮想環境にインストールされます。

下の図に示すように、私はすでに私のものをインストールしました(スクリーンショットのdjangoProjectはまだ前のdjangodomeです。名前を変更しただけです。実際の状況に応じて変更してください)

3.プロジェクトweb.configの構成ファイルを変更します(プロジェクトはまだC:\ inetpub \ wwwroot \です)。つまり、Python環境を仮想環境のPython環境に変更します。

<system.webServer>
        <httpErrors errorMode="Detailed" />
        <directoryBrowse enabled="true" />
        <handlers>
            <add name="cgihandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\Administrator\Envs\djangodome\Scripts\python.exe|C:\inetpub\wwwroot\diangodome\wfastcgi.py" resourceType="Unspecified" />
        </handlers>
    </system.webServer>

おすすめ

転載: blog.csdn.net/baidu_39105563/article/details/124284681