Windows的 IIS 部署django項目
1。安裝Windows的IIS 功能(win10為例):
(1)進入控制面板 :選擇大圖標 進入程序和功能

(2)啟用或者關閉Windows功能

(3)勾選需要的功能(CGI必須安裝)、

(4)驗證IIS有沒有安裝成功
打開瀏覽器 輸入地址為: localhost (出現此頁面則IIS安裝成功)

2.環境准備:你的django 或許使用了虛擬環境,那么部署的時候,服務器主機除了python之外,,,django框架 依賴庫都要在服務器主機上安裝
(1)安裝 wfastcgi 打開管理員命令行(cmd)使用命令 pip install wfastcgi
安裝成功后 wfastcgi-enable (記住wfastcgi.py文件的路徑)
(2)先將項目 復制到 C:\inetpub\wwwroot 目錄下 (避免權限問題導致項目部署失敗)
(3)將wfastcgi.py復制到項目的根目錄下

(4)檢查依賴庫有沒有全部安裝
(安裝依賴庫的時候,可以先把項目環境的軟件包信息和依賴軟件導出到文件里<注意切換到項目目錄,如runserver方法一致>
(命令為:pip freeze > requirements.txt)然后直接在cmd(管理員)里面執行pip install -r requirements.txt)
打開cmd(管理員) 進入到項目的根目錄 ,然后運行 python manage.py runserver
如果報錯,仔細檢查錯誤信息,安裝需要的依賴庫(上圖是正確運行的結果,我在部署的時候就碰到,因為使用ide開發,使用了bootstrap3 ,項目部署的時候忘記安裝庫,
導致項目部署完后報錯,錯誤信息也沒提示是依賴庫的問題,直到使用runserver執行的收,提示 bootstrap3 is not defined)

(5)開始部署項目(win10) 開始菜單 >>Windows管理工具>>Internet information service

網站:右鍵>>添加網站

網站名稱自己填 物理路徑選擇項目的文件夾 端口號填一個沒有被占用的端口即可 主機名不填

選中添加的網站 打開處理程序映射

右邊選擇添加模塊映射

請求路徑填 “*”
模塊選擇 FastCgiModule
可執行文件:“python解釋器的路徑”|wfastcgi.py文件的路徑
示例(C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe|C:\inetpub\wwwroot\DjangoWebProject1\DjangoWebProject1\wfastcgi.py)
如果提示用引號括起來,那么將前面python解釋器的路徑用引號括起來 (路徑包含空格)

打開請求限制,取消勾選

添加環境變量:先進入主機的主頁>>FastCGI設置

雙擊你添加的網站的路徑>>點擊箭頭指的地方

添加三個變量
1. get_wsgi_application()方法的位置,
Name: WSGI_HANDLER
Value: django.core.wsgi.get_wsgi_application()
2.Django項目目錄
Name: PYTHONPATH
Value: C:\inetpub\wwwroot\DjangoWebProject1 (此處填寫項目的目錄)
3.項目settings.py文件的位置
Name: DJANGO_SETTINGS_MODULE
Value: DjangoWebProject1.settings(DjangoWebProject1是自己的項目名稱)
如果項目包含靜態文件,則需要配置靜態文件
配置靜態文件,在項目目錄調用python manage.py collectstaic命令(如之前的運行runserver方法一致)將app下static中的靜態文件全部拷貝到 settings.py 中設置的 STATIC_ROOT 文件夾中
命令運行結束后在項目的具體app路徑下的static文件夾>>admin>>新建一個文件web.config

在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管理器
你添加的網站>>右鍵菜單>>添加虛擬目錄
名稱:一般使用static
路徑:選擇web.config所在的目錄
最后重新啟動下網站就行了
