1. 程式人生 > >Windows下Flask+Apache+mod_wsgi部署Flask專案

Windows下Flask+Apache+mod_wsgi部署Flask專案

想在Windows上部署Flask。參照了網上好多教程,終於配好了。

必要條件:

         1: python環境

         2:apache伺服器

         3:mod_wsgi

 下面是我的機子的環境:

python:python3.6.

apache伺服器:

       這裡有好多坑:我一直部署不成功,感覺跟我下載的版本有關:但是我也不清楚哪裡有問題。

我是64位 win10系統:


2:解壓檔案並將解壓出的“apache24”放到C盤根目錄:


C盤根目錄:


如果你不想放在C盤。可以修改配置檔案:Apache24\conf\httpd.conf   :修改其中的如圖所示處:


3:接下來測試一下伺服器,看是否能正常執行:開啟cmd。 切換到 Apache24\bin    執行httpd.exe,如果能正常執行就是:


可能會出現如下圖的警告:AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::842:1c5:da2d:ba3a. Set the 'ServerName' directive globally to suppress this message  :這個不影響伺服器執行。你可以修改 配置檔案:Apache24\conf\httpd.conf   。指明你的ServerName。



4:開啟伺服器後: 開啟瀏覽器:輸入 localhost :可以看到:it work! 你就成功了。

二:接下來把  mod_wsgi 新增到apache 伺服器中:

這裡 也有我疑惑的地方。我下載的 apache 是vc10的版本。但是我在配置時,我下載的 mod_wsgi 是VC14的版本,竟然最後成功了:根據自己的下載響應的版本。並將whl 中 的 mod_wsgi.pyd 提取出來。



2:將提取出來的檔案放到  Apache24\modules  中:


3:修改配置檔案    Apache24\conf\httpd.conf  :新增:

LoadModule wsgi_module modules/mod_wsgi.pyd

4:到了激動人心的時刻了。重啟一下apache伺服器,看是否有報錯。如果沒有 ,說明成功了。

這裡 我碰到的問題就是。我使用  mod_wsgi-4.5.24+ap24vc10-cp34-cp34m-win_amd64.whl  提取出來的mod_wsgi  無法啟動服務:但是可以使用  mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl   提取出來的盡然可以成功執行伺服器。  可能這個要求的python版本比較嚴格,對CV的版本不是很嚴格??我也是測試出來的。

三:接下來就是 部署Flask :

1:首先寫一個最簡單的Flask 應用,並進行釋出:這裡在跟  apache24  同一目錄下也就是  C盤根目錄下:建立mydir目錄。在目錄中寫兩個檔案:hello.py 和myapp.wsgi:


hello.py:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!終於成功了。我擦"

if __name__ == '__main__':
    app.run()

myapp.wsgi:

import sys
sys.path.insert(0, 'c:\\mydir')
from hello import app as application

這裡的 application  必須是這個。伺服器只看這個。

2:修改配置檔案:Apache24\conf\httpd.conf   新增幾行:

<VirtualHost *:80>
     WSGIScriptAlias /myapp c:\mydir\myapp.wsgi
     <Directory c:\mydir>
         Require all granted
     </Directory>
</VirtualHost>

3:到此。所有配置已 填寫完畢。


.