環境:
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>