本節將在GCP的VM上,建置Python 語法的Flask架構Web 網站
而VM的作業系統是Windows Server 2012,所以要直接架在IIS上面
查了許多文章,一個一個了解功能的用途,做一個記錄
GCP VM規格:
機器類型:g1-small (1 個 vCPU,1.7 GB 記憶體)
機器所在區域:asia-east1-b
防火牆設定:允許HTTP、HTTPS
Storage:標準永久磁碟 50G *2 (備註:光裝windows server os 就要20G左右的空間,用30G免費的容量將有不足的情況)
作業系統:Windows Server 2012 R2 Datacenter
設定好遠端桌面的密碼後,遠端登入VM
安裝IIS與CGI
開啟Server Manager>Add roles and features
Server Roles中有Web Server(IIS) 打勾
繼續向下尋找到CGI 如下圖
Python 在windows 的環境下跑需要CGI應用程式去跑,IIS只支援FastCGI ,Flask是啟動WSGI應用程式跑
所以要轉換的話主要都是在Python裝wfastcgi package,並且設定在IIS的FastCGI的model裡面
Python Package Install and Setting IIS FastCGI
首先先裝wfastcgi
pip install wfastcgi
接著啟動他,正常來說,IIS的FastCGI就會新增好,但有時也會有例外
#切到安裝package的路徑
cd c:\python34\scripts
#啟動wfastcgi
wfastcgi-enable
筆者在此是下圖的結果
安裝好後,回到IIS上,開啟Handler Mappings
如果清單沒有Handler類型沒有FastCgiModule就新增一個Model Mapping
設定如下,重點是Executable,設定的方式要用輸入的:Python.exe的路徑(含python.exe)|wfastcgi.py的路徑(含wfastcgi.py)
Module:FastCgiModule
最後在IIS上的網站Handler Mappings長像會是下圖
IIS主要設定-FastCGI Settings
除了針對網站做設定,最後還要針對整個Server設定FastCGI
讓IIS知道要去哪拿python.exe執行.py檔案
新增一個Full Path,主要放置python.exe路徑與wfastcgi.py路徑
重點是要設定環境變數,變數的key似乎是固定的,有下列二者
- WSGI_HANDLER:主要執行哪一個python 檔案名稱,在加上.app 即可
- PYTHONPATH:就是放python.exe的路徑(不含python.exe)
接著就可以直接檢視網站(這邊因為筆者設定Python Web Site走80 port,所以直接以localhost就可以檢視)
如果要改port
網頁default就是走80,port不能共用的情況下,會需要調整port
後記:
1.有範例會說需要copy wfastcgi.py檔案到自已的網站下面
- 但經上述的設定是設定package 安裝路徑所以當然就不用copy
2. 有範例說要設定web.config
- 因為上述設定直接給了環境變數,所以就沒另開一個web.config,而拿掉環境變數設定了web.config會在讀config時有問題,這個還沒解
參考資訊
Sample Code(Github):使用flask架構製作上傳圖檔辨識文字內容的網頁,辨識工具Tesseract-OCR