Flask部署:virtualenv+apache+mod_wsgi

一、前言

開發完Flask的項目之后,需要進行部署使用。在部署的過程中,遇到了很多的麻煩,很是心塞,最終部署成功。記錄下來,或許可以給需要在Windows上部署Flask項目的朋友們作為參考。

二、部署過程

本次部署采取的方案為:virtualenv+apache+mod_wsgi
需要注意的是:Python,Apache和mod_wsgi應該都為32位或者64位,不能混用;而且Apache和mod_wsgi要是相同版本的C/C++編譯器生成的。

1. virtualenv

使用virtualenv的理由:

  • 隔離項目之間的第三方包依賴,不同項目依賴于不同的第三方包
  • 部署應用方便,把開發環境的虛擬環境直接打包到生產環境即可

我用的是python2.7 64,cmd下:

  • 安裝virtualenv:pip install virtualenv
  • 新建虛擬環境:virtualenv E:\virtualenv\ikmap
  • cd進入E:\virtualenv\ikmap\Scripts目錄,輸入:activate激活虛擬環境
  • 安裝項目依賴包:pip install -r requirements.txt
    (requirements.txt是自己項目導出的)

2. Apache

我用的是Apache2.4.27 VC9 64:

  • 解壓到E:\Apache24
  • 修改配置文件conf\httpd.conf:
    Define SRVROOT "E:\Apache24"
    Listen 80
  • cmd管理員身份運行,進入E:\Apache24\bin目錄:
    httpd -k install -n Apache24 # 安裝Apache服務
    httpd -k uninstall -n Apache24 # 卸載Apache服務
  • 啟動Apache服務,瀏覽器輸入:http://127.0.0.1:80 測試Apache是否成功安裝。

3. mod-wsgi py27 VC9 64

  • 將mod-wsgi.so文件拷貝至E:\Apache24\modules下
  • 修改配置文件conf\httpd.conf,引入:
    LoadModule wsgi_module modules/mod_wsgi.so
  • 重新啟動Apache服務,啟動成功,Apache服務描述處有mod_wsgi等字樣

4. 創建.wsgi文件

  • 在自己項目的啟動文件的相同路徑下新建一個.wsgi結尾的文件,我的是app.wsgi:
activate_this = "E:/virtualenv/ikmap/Scripts/activate_this.py" # 虛擬環境激活文件
execfile(activate_this, dict(__file__=activate_this))

import site
import sys
# Remember original sys.path.
prev_sys_path = list(sys.path)
# Add site-packages directory.
site.addsitedir('E:/virtualenv/ikmap/Lib/site-packages') # 虛擬環境安裝第三方包文件目錄
# Reorder sys.path so new directories at the front.
new_sys_path = []
for item in list(sys.path):
    if item not in prev_sys_path:
        new_sys_path.append(item)
        sys.path.remove(item)
        sys.path[:0] = new_sys_path
sys.path.insert(0, 'E:/PyCharmProjects/ikmap') # 項目文件目錄

from app import app as application # 只能用application,因為mod_wsgi在解析時,只認application

注意:路徑使用'/',注意方向!

5. 修改配置文件conf\extra\httpd-vhosts.conf

  • 先刪除默認的virtuaHost -default內容:
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
</VirtualHost>
  • 添加以下內容:
<VirtualHost *:80 >
    DocumentRoot "E:/PyCharmProjects/ikmap" # 項目路徑
    WSGIScriptAlias /ikmap "E:/PyCharmProjects/ikmap/app.wsgi" # .wsgi文件路徑,前面添加了/ikmap,瀏覽器輸入就應該是http://127.0.0.1:80/ikmap,避免直接輸入http://127.0.0.1:80
    <Directory "E:/PyCharmProjects/ikmap">
        Options Indexes FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>

注意:路徑使用'/',注意方向!

  • 修改配置文件conf\httpd.conf,引入:
    Include conf/extra/httpd-vhosts.conf

三、測試

在瀏覽器輸入:http://127.0.0.1:80/ikmap就可以看到自己的項目了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,772評論 3 422
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,960評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,350評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,549評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,104評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,914評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,089評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,340評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,834評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,106評論 2 375

推薦閱讀更多精彩內容