教程基於 Windows 10專業版+Python3.6+IIS+wfastcgi 之上部署Django2.2的,一樣適用於Windows server2012服務器和Windows7及以上的Windows操做系統。html
Django依賴於Python解釋器環境。安裝步驟略。可參考http://www.javashuo.com/article/p-zwmiwrmu-bh.html(根據實際狀況,也能夠不裝虛擬環境)。python
打開【控制面板】->【程序和功能】,點開左側的【啓用或關閉Windows功能】,啓用IIS,必定要包含CGI。web
在瀏覽器地址輸入localhost訪問IIS測試,若是出現如下頁面,表示安裝成功。sql
首先,部署生產環境要關閉調試模式,修改settings文件:數據庫
DEBUG = False # 關閉調試 ALLOWED_HOSTS = ['127.0.0.1'] # 指定能訪問網站的主機IP
建議在服務器中新建文件夾,將上傳的項目文件和虛擬環境放在同一文件夾裏。進入虛擬環境,批量安裝全部依賴庫:django
pip install -r requirements.txt
留意:執行以上命令的前提是,用命令"pip freeze > requirements.txt"把項目環境的依賴庫信息導出到requirements.txt文件裏。瀏覽器
若是使用的是Mysql數據庫,請自行安裝Mysql和導入數據,這裏就不說明。安全
進入虛擬環境,pip安裝之,如圖。服務器
啓動wfastcgi:app
wfastcgi-enable
如上圖,啓動成功以後,它會把Python路徑和wfastcgi的路徑顯示出來,咱們須要把這個路徑複製出來,保存好,後邊用得着!
e:\djblog\vpy_myblog\scripts\python.exe|e:\djblog\vpy_myblog\lib\site-packages\wfastcgi.py
注意:上面的路徑,是由Python解釋器的路徑和「|」以及「wfastcgi.py」文件路徑組成。
經過【控制面板】->【管理工具】打開IIS管理器。
在項目根目錄下新建"web.config"配置文件,複製粘貼如下內容。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="<Path to Python>\python.exe|<Path to Python>\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="<Path to Django App>" /> <add key="DJANGO_SETTINGS_MODULE" value="<Django App>.settings" /> </appSettings> </configuration>
修改配置文件:
右鍵添加虛擬目錄,如圖。
添加虛擬目錄時,別名與你的settings裏設置的一致,好比"static",物理路徑就是靜態資源的實際目錄。
在static目錄下新建一個"web.config"文件,而後寫入下面的內容,保存便可無須修改。
<?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>
至此部署基本完成。重啓IIS,在瀏覽器裏輸入http://127.0.0.1,就能訪問網站。
1.若是訪問IIS出現以下錯誤
出現這樣的狀況是由於IIS7以後的版本都採用了更安全的 web.config 管理機制,默認狀況下會鎖住配置項不容許更改。咱們把它解鎖了就OK。
打開CMD,在裏面依次輸入下面兩個命令:
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
2.有時候訪問頁面,或者單獨訪問網站後臺出現400錯誤
這個時候多是由於沒有給網站權限的緣由。咱們打開IIS,找到網站,右鍵,編輯權限,給IIS用戶添加修改和寫入權限。就能正常訪問。
3.靜態文件顯示異常
在settings.py裏添加STATIC_ROOT配置,指定收集靜態文件路徑,如:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
進入虛擬環境,輸入如下命令進行收集靜態文件:
python manage.py collectstatic
收集完成以後,刷新頁面,顯示正常。
至此,轉載請註明出處。