flask在windows上用mod_wsgi部署也是折騰了不少時間,下面就總結下。
首先下載Apache httpd,我認為Apache Hans比較好;
一般這種情況下,你的python環境已經安裝好了,只是你要確認自己pc上的python的版本,然后就是下載windows下的預編譯好的mod_wsgi;
在下載mod_wsgi時一定要認真,確認你的python版本和平台、還有你下載的httpd的版本和平台,在上面的Unofficial Windows Binaries for Python Extension Packages這個網站找到匹配的mod_wsgi,這一步很重要,否則httpd服務將無法啟動,因為mod_wsgi和python或httpd不匹配;
將下載下來的mod_wsgi解壓后把mod_wsgi.so擴展模塊放在Apache24\modules目錄里,然后在配置文件Apache24\conf\httpd.conf里添加配置:
1 LoadModule wsgi_module modules/mod_wsgi.so
如果下載的是新版的是pyd文件,具體httpd.conf配置和上面差不多: LoadModule wsgi_module modules/mod_wsgi.cp35-win_amd64.pyd
最后注意修改Apache的根目錄路徑:
1 Define SRVROOT "D:\006-httpd\httpd-2.4.23-x64-vc14-r3/Apache24" 2 ServerRoot "${SRVROOT}"
最后把Apache httpd安裝為windows服務:
1 httpd -k install
注意修改httpd.conf文件的兩個配置項,因為在windows平台下,這兩個配置項不注意,很可能httpd服務會在某一時刻意外停止,莫名你還摸不到頭腦。
AcceptFilter http none
AcceptFilter https none
下面是一個flask應用的基本配置,沒考慮安全因素,只是測試發布:
1 <VirtualHost *:8000> 2 WSGIScriptAlias /flask D:\002-Code\pycode\wsgi.py 3 4 <Directory D:\002-Code\pycode> 5 Require all granted 6 </Directory> 7 8 </VirtualHost>