Windows+Apache+mod_wsgi+Flask完全配置攻略

weixin_34162695發表於2017-06-29

很早就想弄個自動化新聞網站,因為之前是用tomcat的,第一次使用WAMP遇到很多坑,今天就完整展示大致流程,希望能幫到需要的人。
首先是下載所需資源,這裡預設已經配置好了python。

進入Apache官網下載頁面

3931549-48b10db53037ff1c.png
Apache下載頁.png

點選Files for Microsoft Windows進入windows版下載頁面

3931549-20c18b8d92c7719d.png
Windows版選擇頁面.png

點選Apache Haus,進入版本選擇頁面

3931549-716613e859d7ffe9.png
版本選擇.png

在這裡一定要注意,版本一旦選錯,會出現apache無法執行的錯誤,慎重,慎重。
我們選擇Apache 2.4.26 x64這項右下角的Download選擇下載,這是最新版本的64位Apache
解壓之後得到Apache24資料夾,接著自行配置環境變數,完成後我們開始下載mod_wsgi

開啟http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil

3931549-436a7e8b9ee79956.png
WSGI.png

找到Mod_wsgi,下載對應位數和python的版本,本人是python3.6,64位windows
所以選擇了mod_wsgi‑4.5.15+ap24vc14‑cp36‑cp36m‑win_amd64.whl
下載好之後我們解壓檔案,會得到兩個資料夾
3931549-c72a7674c6490a10.png
解壓.png

開啟mod_wsgi資料夾,找到server下的mod_wsgi.cp36-win_amd64.pyd,我們選擇複製
3931549-baf83dc20fbec5c6.png
pyd檔案.png

將複製檔案貼上到Apache24的modules下
3931549-c76bc7266dcaed65.png
模組複製.png

在這裡我將mod_wsgi.cp36-win_amd64.pyd改名為mod_wsgi.pyd,你也可以不改名字
光是將模組放進資料夾,Apache依舊無法識別,我們需要修改它的配置檔案
開啟Apache24\conf\httpd.conf
在其中新增LoadModule wsgi_module modules/mod_wsgi.pyd

3931549-f746b35335a093f6.png
新增wsgi.png

同時,我們還需要把LoadModule vhost_alias_module modules/mod_vhost_alias.so前面的#去掉,意思是讓其有效,這個是為之後的虛擬主機啟用做準備

現在暫時完成Apache的配置工作
我們開始下載Flask
這裡預設你的windows安裝了pip模組
我們直接在cmd中輸入pip install flask


3931549-9a4553bdceb3c494.png
下載flask.png

現在我們建立一個簡單的flask專案,在Apache同名目錄下建立test資料夾,按照flask的目錄規則建立static(靜態資源夾),templates(渲染資料夾)和執行程式碼test.py

3931549-97e73aabbe08b892.png
測試專案.png

在test.py中我們輸入以下程式碼:

from flask import *
app=Flask(__name__)
@app.route('/')
def index():
    return '<center><h1>Test Success</h1></center>'
if __name__ == '__main__':
    app.run()

因為只是簡單測試,不需要編寫完善的html頁面,我僅僅返回了‘Test Success’這句話,這個時候我們還要編寫wsgi檔案,以便於連結Apache和Flask之間的溝通。
在wsgi.py中輸入:

from test import app as application

這裡提醒下,只有test.py和wsgi.py處於同一目錄下才能這麼寫,否則需要sys.path.insert()方法來引入目錄空間,如果不是專案需要,儘量都放在同一目錄下。

現在進入關鍵的一步,我們需要在配置檔案中配置虛擬主機。
開啟httpd.conf,輸入:

Listen 6111
<VirtualHost *:6111>
    WSGIScriptAlias / C:\test\wsgi.py
    <Directory 'C:\test'>
        Require all granted
        Require host ip
    </Directory>
</VirtualHost>

Apache配置的方法有很多,詳情可以訪問官網諮詢
這樣我們的網站基本就搭建好了
訪問YouIp:6111可以開啟頁面(YouIp是你主機的ip地址)

3931549-13a0e9916578f128.png
訪問.png

Windows下Flask和Apache的使用基本就是這樣,介紹的很簡略,如果想要深入運用,建議大家還是通過官方瞭解。

相關文章