IIS 7.5上配置執行Python 3.6+Django 網站
阿新 • • 發佈:2019-02-15
因業務切換,將原先的CentsOS換成Windows 2008 R2作業系統,重新部署了下Django網站,現將過程記錄下:
1、安裝Winodws版的Python 3.6環境,直接下載Anaconda3-4.3.1-Windows-x86_64.exe整合包並安裝(要勾選新增環境變數)
2、安裝並配置wfastcgi:
官網:https://pypi.python.org/pypi/wfastcgi
先在Windows2008伺服器開啟IIS角色功能,新增CGI等模組。
開啟Power Shell新視窗(cmd),執行命令:
pip install wfastcgi
等待安裝成功;
執行
wfastcgi-enable
命令啟用它,成功後會輸出:
3、配置 web.config
在IIS中新建網站,目錄指向專案的根目錄(如有同時繫結好域名)。在Django程式的根目錄下(與manager.py同級)新建web.config檔案,其配置內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="c:\programdata\anaconda3\python.exe|c:\programdata\anaconda3\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
<add key="PYTHONPATH" value="C:\sitepath" />
<add key="DJANGO_SETTINGS_MODULE" value="prjname.settings" />
</appSettings>
</configuration>
重點是以下這幾個變數值:scriptProcessor、PYTHONPATH、DJANGO_SETTINGS_MODULE,要改成自己的實際值。
為了讓靜態檔案的處理不經過Python這一層,在static目錄下也添加個子級的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="Python FastCGI" />
</handlers>
</system.webServer>
</configuration>
此檔案中的remove name的值要與上級的add name值一致。
PS:python manager.py collectstatic 可以生成靜態樣式檔案,特別是admin管理端的目錄。
如果出現IIS-500錯誤,則給站點目錄加上IIS_IUSRS使用者許可權試下
重啟下網站即可訪問。
—配置好後,會自動在IIS下完成下面兩個設定: