--- title: 'Project documentation template' disqus: hackmd --- 將Django部署在Windows上的IIS10 === 因為工讀時需要佈署自行開發的Django,再加上網上相關資源有些零散,所以就來簡單的紀錄一下。 <br /> ## 環境 Python 3.11.6 Django 4.2.2 wfastcgi 3.0.0 ![image](https://hackmd.io/_uploads/HkOn1Zomp.png =360x160) <br /><br /> 前置作業 --- 1. 安裝 Python、且有Django專案 ( 自行參考網上教學 ) 2. 安裝 wfastcgi ```gherkin= pip install wfastcgi ``` 3. 找到 wfastcgi.py ![image](https://hackmd.io/_uploads/BkCcfZiQ6.png =360x200)<br /> 4. 將其放到專案目錄下 ( 和 manager.py 同層) ![image](https://hackmd.io/_uploads/ry82EZoXT.png =210x350) <br /><br /> 啟用IIS --- 1. 控制台 > 所有控制台項目 > 程式和功能 > 開啟或關閉Windows功能,選擇 IIS 並開始安裝 ![image](https://hackmd.io/_uploads/rJomrbsQa.png) <br /> 2. 安裝 CGI ![image](https://hackmd.io/_uploads/Hy2PHWs7T.png) <br /> 3. 安裝完後打開瀏覽器輸入 http://127.0.0.1 訪問,若出現下列畫面代表安裝成功 ![image](https://hackmd.io/_uploads/BJLFBZiQp.png) <br /><br /> 新增網站 --- 1. 進入 IIS 管理員 ![image](https://hackmd.io/_uploads/BJvx8-jmp.png =500x600) <br /> 2. 站台 >> 新增網站 ![image](https://hackmd.io/_uploads/Sy0v0-oXa.png =360x280) <br /> ![image](https://hackmd.io/_uploads/SyfWvWjXa.png) <br /> 3. 進入剛剛建立的網站,並進入"處理常式對應" ![image](https://hackmd.io/_uploads/H1crvZoQ6.png) <br /> 4. 右方進入"新增模組對應" ![image](https://hackmd.io/_uploads/Byu_wWo7T.png =300x400) <br /> ![image](https://hackmd.io/_uploads/HJEJu-jXa.png) <br /><br /> 設定 FastCGI --- 1. 進入首頁,並進入FastCGI設定 ![image](https://hackmd.io/_uploads/r1ADuWsQp.png) <br /> 2. 進入後可看見剛剛 CGI 所設定的 ![image](https://hackmd.io/_uploads/Bk8TdZjXp.png) <br /> 3. 點兩下進入編輯,再進入環境變數編輯器 ![image](https://hackmd.io/_uploads/rkPWt-iQa.png) <br /> 4. 加入以下三個變數 * Name : WSGI_HANDLER Value : django.core.wsgi.get_wsgi_application() * Name : PYTHONPATH Value : 專案目錄路徑,即放manager.py的那個資料夾 * Name : DJANGO_SETTINGS_MODULE Value : 主APP名.settings ( ex. myapp.settings,即放settings.py的那個資料夾的名稱.settings ) <br /> ![image](https://hackmd.io/_uploads/rkY7K-sX6.png =480x300) <br /> 5. 完成後將會在專案目錄下自動生成 web.config 檔案,若無請自己新增一個,並輸入以下內容更改相關參數並存檔 ![image](https://hackmd.io/_uploads/Sy6R5bo7a.png) <br /> 6. web.config ( 橘色框框請無視 ),其中三個參數須根據自身路徑及設定更改 ```gherkin= <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\ 你的專案路徑 \wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/> </handlers> </system.webServer> <appSettings> <add key="PYTHONPATH" value="剛剛設定的Value"/> <!-- The handler here is specific to Bottle; see the next section. --> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/> <add key="DJANGO_SETTINGS_MODULE" value="剛剛設定的Value" /> </appSettings> </configuration> ``` <br /><br /> 啟動並瀏覽 --- ![image](https://hackmd.io/_uploads/BJsrnbsQa.png) <br /> 之後等SSL跟DNS申請下來之後再來更新https相關設定吧 <br /><br /> 補充自己遇到的錯誤 --- 跳錯 Exception Value: attempt to write a readonly database --> 大機率是 USRE 對 db.sqlite3 的控制權限未打開 <br /> ![image](https://hackmd.io/_uploads/ry8baboQ6.png) <br /><br /><br /><br /> ## 一些參考資料 > https://ithelp.ithome.com.tw/articles/10210064 > https://zhuanlan.zhihu.com/p/111822007 > https://home.gamer.com.tw/creationDetail.php?sn=4112824