前言
國(guó)內(nèi)的相關(guān)資料太少了,不管是學(xué)習(xí)還是處理問(wèn)題方法,為了讓還在
flask官方有關(guān)于部署文檔,官方提供幾種方法只成功這一種,寫的太簡(jiǎn)單http://dormousehole.readthedocs.org/en/latest/deploying/index.html
配置:
Flask + mod_wsgi + Apache
Flask: ?一個(gè)Python的web框架
mod_wsgi: 一個(gè)為Python編寫的Apache的FastCGI模塊
Apache: 一個(gè)類似于IIS的Web服務(wù)器
坑一:
如果下面這一點(diǎn)沒(méi)有做到,整個(gè)過(guò)程有99%的可能性會(huì)失敗。Apache,mod_wsgi和Python都必須用相同版本的C/C++編譯器生成,它們要么是32位的,要么是64位的,不能混用。
一篇博客文章說(shuō)道:Python官方站點(diǎn)上下載的Python 3.4就是32位的,并且是用VC10編譯出來(lái)的。因此在下載Apache和mod_wsgi時(shí),也必須選擇32位的用VC10編譯出來(lái)的版本。我用的最新版本python3.6對(duì)應(yīng)那個(gè)版本編譯呢?太新了,資料太少了。沒(méi)有找到對(duì)應(yīng)的信息,其他版本參見(jiàn): https://github.com/GrahamDumpleton/mod_wsgi/blob/master/win32/README.rst
我從上面連接獲取到有價(jià)值的信息如下:
Python 2.6 - VC9 ? ?Python 2.7 - VC9 ? Python 3.3 - VC10 ? Python 3.4 - VC10
后來(lái)在這篇文章找到答案:http://blog.csdn.net/chao_8023/article/details/74012324
結(jié)果:
i. 這個(gè)插件對(duì)應(yīng)的Apache版本是24 VC是14
ii.python版本是3.6
iii. 64位系統(tǒng)
在下載時(shí)要選擇相應(yīng)的版本,否則Apache啟動(dòng)時(shí)會(huì)有問(wèn)題,自己對(duì)應(yīng)自己的環(huán)境進(jìn)行配置即可,困難的是怎樣找到自己所對(duì)應(yīng)的。
步驟:
1、安裝Apache
2、安裝mod_wsgi
3、安裝Python
4、安裝Flask
5、創(chuàng)建測(cè)試Web App
6、在Apache中配置站點(diǎn)
1. 安裝Apache
Apache是開源軟件,針對(duì)windows環(huán)境,它不直接提供編譯版本。
可以在http://www.apachelounge.com/download/ 下載適合自己環(huán)境的版本。
根據(jù)我自己當(dāng)前的環(huán)境,我選擇的是Win32 VC10編譯出來(lái)的Apache2.4版本
將壓縮包下載到本機(jī),然后將壓縮包里面的Apache24文件夾拷貝到C:\。
當(dāng)然,你可以拷貝到你的系統(tǒng)的任何位置,但Apache的默認(rèn)配置是C:\Apache24。
如果你本機(jī)運(yùn)行了IIS,將其關(guān)掉。因?yàn)镮IS和Apache都默認(rèn)用的是80端口。如果你想配置其它端口,我相信那也不難。等把Flask部署成功后再來(lái)?yè)v鼓吧。
打開cmd
>cd c:\
>cd Apache24\bin\
>httpd
然后打開瀏覽器,輸入
http://localhost
如果網(wǎng)頁(yè)上顯示It Works!,那說(shuō)明apache服務(wù)器運(yùn)行起來(lái)了。
2. 安裝mod_wsgi
這個(gè)module可不能隨便裝,它是啟動(dòng)Python的關(guān)鍵。
我不知道為什么Flask的官方站點(diǎn)上不把這個(gè)模塊的安裝列出來(lái)。只是簡(jiǎn)單的說(shuō)了一下httpd.confg的配置,實(shí)在是太不負(fù)責(zé)任了。
從下面這個(gè)鏈接下載mod_wsgi
https://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so
這個(gè)包里面包含了32位和64位的編譯版本,下載完成后選擇
mod_wsgi-windows-4.4.12.tar\mod_wsgi-windows-4.4.12\Apache24-win32-VC10\modules\mod_wsgi-py34-VC10.so。
因?yàn)槲耶?dāng)前安裝的Python是32位的,所以必須選擇mod_wsgi-py34-VC10.so
將mod_wsgi-py34-VC10.so拷貝至C:\Apache24\modules\下,并更名為mod_wsgi.so。
打開 c:\Apache24\conf\httpd.conf 添加如下配置
LoadModule wsgi_module modules/mod_wsgi.so
重新啟動(dòng)httpd,如果沒(méi)有報(bào)錯(cuò),說(shuō)明mod_wsgi模塊在apache里面加載成功了。
坑二:
當(dāng)你發(fā)現(xiàn)沒(méi)有你所對(duì)應(yīng)的版本的時(shí)候,尷尬了。我搜索引擎刷爆了也沒(méi)找到怎樣解決。淡定,在下提供第二種方案:
十分感謝這個(gè)作者:http://blog.csdn.net/chao_8023/article/details/74012324?
剩下的步驟坑就沒(méi)有那么多了,踩到了估計(jì)是自己的配置文件沒(méi)有搞完,自己檢查一下了。