IIS部署python Web 使用Flask

Ryan Lu
AI反斗城
Published in
Dec 15, 2020

環境: win10

1.安裝與配置IIS。
進入控制台>程式集>點選:程式與功能- 開啟或關閉Windows功能>點選:Internet Information Services- World Wide Web服務- 應用程式開發功能- CGI。

2.安裝wfastcgi。
裝置管理員開啟:CMD>輸入:pip install wfastcgi

pip install wfastcgi

3.啟用wfastcgi。
到安裝wfastcgi的資料夾路徑,運行wfastcgi-enable.exe。

會回傳類似以下回應,雙引號路徑之後會用到,可先複製。

已將設定變更套用至設定認可路徑 “MACHINE/WEBROOT/APPHOST” 中 “MACHINE/WEBROOT/APPHOST” 的區段 “system.webServer/fastCgi”。
“c:\users\...\appdata\local\continuum\anaconda3\python.exe|c:\users\...\appdata\local\continuum\anaconda3\lib\site-packages\wfastcgi.py” is no longer registered for use with FastCGI

【報錯處理】
1、若提示wfastcgi-enable權限不足,則使用管理員身份運行cmd 切換到對應文件夾執行wfastcgi-enable即可。
2、若提示application對象確實必要屬性或重複,則執行 wfastcgi-disable命令。

4.創建FLASK並配置IIS 權限。
將wfastcgi.py複製到你要運行程式的文件夾中,如果往後要創建數個站台,這很重要。

(實驗過這條不是必須,網友說過一併附上)在你要運行程式的文件夾中以管理員執行以下兩條命令,使IIS用戶擁有訪問和執行你的網站腳本的權限。

icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"

5.在IIS管理器中創建網站並添加映射。
a.建立站台。
開始功能表搜尋IIS並開啟>點選:站台,並新增網站。

b.設立站台的名稱、埠和入口程式位置。
站台名稱:自訂。
實體路徑:你要運行程式的文件夾路徑。
連接埠:自訂,但不可以跟其他站台連接埠重複。

c.設定造訪站台的地址、站台使用協定(模組)、執行你的入口程式的框架(python)的執行檔。
點選:剛剛你創的站台>處理常式對應>新增模組對應。

要求路徑: 打*,表示用本地路徑,127.0.0.1。
模組: 選FastCgiModule。
執行檔: 本範例如下,|符號前為框架(python)執行檔位置。符號後為wfastcgi.py位置,前面步驟有複製一份wfastcgi.py到你要運行程式的文件夾,指定這裡就好。
名稱: 自訂。
要求限制: 點選後,將核取方塊(只有當要求對應到下列項目時才啟動處理常式)取消。

c:\users\ryanlu7374\appdata\local\continuum\anaconda3\python.exe|D:\Contrel_Project\project\AI_Model\web\IIS_TEST\wfastcgi.py

6.設定FastCGI去哪執行框架執行檔、wfastcgi.py、你的入口程式。
a.點選本機IIS>點FastCGI設定>點你剛剛設定的站台名>.點選環境變數,去設置你的入口程式位置。

b.左欄加入:PYTHONPATH。
右欄屬性: Name,寫PYTHONPATH。Value,寫你的入口程式資料夾位置。
c.左欄加入:WSGI_HANDLER。
右欄屬性: Name,寫WSGI_HANDLER。Value,寫你的入口程式檔名,後面自己加.app。

7.
a.點選應用程式集區>點剛剛創的FastCGI的新設定>點進階設定。
b.產生處理序模型事件紀錄項目>識別>改成LocalSyetem。

8.瀏覽器網址打上剛剛設定的網址和埠,完成。

[參考]
[GCP] Windows Server 2012 VM Build Python Web Site on IIS
IIS部署python Web(FLASK试例)
Django2:Web项目开发入门笔记(15)

--

--