apache+mod_wsgi+flask(django類同)部署

前言

國(guó)內(nèi)的相關(guān)資料太少了,不管是學(xué)習(xí)還是處理問題方法,為了讓還在

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)沒有做到,整個(gè)過程有99%的可能性會(huì)失敗。Apache,mod_wsgi和Python都必須用相同版本的C/C++編譯器生成,它們要么是32位的,要么是64位的,不能混用。

一篇博客文章說道:Python官方站點(diǎn)上下載的Python 3.4就是32位的,并且是用VC10編譯出來的。因此在下載Apache和mod_wsgi時(shí),也必須選擇32位的用VC10編譯出來的版本。我用的最新版本python3.6對(duì)應(yīng)那個(gè)版本編譯呢?太新了,資料太少了。沒有找到對(duì)應(yīng)的信息,其他版本參見: 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

后來在這篇文章找到答案: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ì)有問題,自己對(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編譯出來的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部署成功后再來搗鼓吧。

打開cmd

>cd c:\

>cd Apache24\bin\

>httpd

然后打開瀏覽器,輸入

http://localhost

如果網(wǎng)頁上顯示It Works!,那說明apache服務(wù)器運(yùn)行起來了。

2. 安裝mod_wsgi

這個(gè)module可不能隨便裝,它是啟動(dòng)Python的關(guān)鍵。

我不知道為什么Flask的官方站點(diǎn)上不把這個(gè)模塊的安裝列出來。只是簡(jiǎn)單的說了一下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,如果沒有報(bào)錯(cuò),說明mod_wsgi模塊在apache里面加載成功了。

坑二:

當(dāng)你發(fā)現(xiàn)沒有你所對(duì)應(yīng)的版本的時(shí)候,尷尬了。我搜索引擎刷爆了也沒找到怎樣解決。淡定,在下提供第二種方案:

十分感謝這個(gè)作者:http://blog.csdn.net/chao_8023/article/details/74012324?

剩下的步驟坑就沒有那么多了,踩到了估計(jì)是自己的配置文件沒有搞完,自己檢查一下了。

剩余步驟參照:http://blog.csdn.net/firefox1/article/details/46438769

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容