1. 程式人生 > >flask專案部署在Apache伺服器(基於xp系統)

flask專案部署在Apache伺服器(基於xp系統)

參考資料:

1、https://blog.csdn.net/firefox1/article/details/46438769

2、https://blog.csdn.net/k295330167/article/details/80616519

整體架構:採用Windows xp系統 sp3版本、Apache2.4 、mod_wsgi 、 python3.x 、 flask(基於VC10編譯環境,32位的機),所有軟體要基於相同編譯環境

1、安裝VC2010編譯環境

在微軟官網https://www.microsoft.com/en-us/download/confirmation.aspx?id=5555下載Microsoft Visual C++ 2010 Redistributable Package (x86),安裝

2、安裝Apache

https://www.apachelounge.com/download/網站下載基於VC10的Apache2.4版本(httpd-2.4.23-win32.ziphttps://www.apachelounge.com/download/VC10/

解壓這個檔案把Apache24資料夾放到C盤根目錄下,因為Apache的配置檔案httpd.conf的ServerRoot預設為c:/Apache24,可根據需要更改。

開啟cmd命令窗,cd c:\Apache24\bin 執行httpd

然後開啟瀏覽器,輸入

http://localhost

如果網頁上顯示 It Works! ,那說明apache伺服器執行起來了。

3、安裝python

在python網站下載python3.4 32位版本https://www.python.org/downloads/windows/

配置環境變數,我的電腦右鍵-->屬性-->高階-->環境變數-->系統變數-->Path-->編輯

加分號新增C:\Python34;C:\Python34\Scripts

更新pip。python -m pip install --upgrade pip(避免有些模組不能安裝)

4、安裝flask

直接利用pip安裝 pip install flask

5、安裝mod_wsgi模組(重難點)

利用pip install mod_wsgi 直接安裝。若能安裝最好,但我的系統環境安裝不了。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi下載適合自己環境的版本。我下載的是mod_wsgi‑4.6.5+ap24vc10‑cp34‑cp34m‑win32.whl

把這個檔案放到C:\Python34\Scripts目錄下,然後執行命令:

(1)mod.whl檔案安裝

cd C:\Python34\Scripts

pip install "mod_wsgi-4.6.5+ap24vc10-cp34-cp34m-win32.whl"

(2)安裝成功後,執行命令:

mod_wsgi-express module-config

(3)得到以下三條資訊

將三條資訊複製到C:\Apache24\conf\httpd.conf檔案中

6、建立專案檔案

建立C:\test_web\test.py

from flask import Flask, request

app = Flask(__name__)

@app.route('/')

def hello_world():

return "hello world!"

if __name__ == '__main__':

app.run()

建立C:\Test_Web\test.wsgi

import sys

#Expand Python classes path with your app's path

sys.path.insert(0, "c:/Test_Web")

from test import app

#Put logging code (and imports) here ...

#Initialize WSGI app object

application = app #預設不能修改

7、Apache 站點配置

修改httpd.conf檔案

修改目錄授權:

將#

<Directory />

AllowOverride none

Require all denied

</Directory>

改為:

<Directory />

Options FollowSymLinks

AllowOverride All

Order deny,allow

Allow from all

</Directory>

新增修改站點資訊

<VirtualHost *:8080 >

ServerAdmin [email protected]

DocumentRoot c:\test_web

<Directory "c:\test_web">

Order allow,deny

Allow from all

</Directory>

WSGIScriptAlias / c:\test_web\test.wsgi

</VirtualHost>

我將埠號改為8080,防止80埠被使用。 / 表示flask的路由,必不可少

為將網站在區域網內訪問:

將 Listen *:8080改為 Listen localhost:8080 localhost為本地IP地址

ServerName www.example.com:8080 改為ServerName 192.168.1.185:8080

8、在瀏覽器輸入本地ip和埠號,顯示hello world!則成功。

本示例的軟體可從以下地址中獲得:http://note.youdao.com/noteshare?id=b155de483a5de1138e58056a566b8464&sub=A3709A03844D45B7B099352DABF071DC

flask專案的配置遇到的問題

1、資料庫的資料來源的問題

在新增資料來源時,要將選擇的資料庫設定為預設資料庫,不然master資料庫會被預設連線

2、flask程式中的路徑問題

程式中的相對路徑是針對Apache24\bin這個檔案而言,不是flask專案的檔案結構

3、xp系統不能安裝高版本的serial庫,安裝2.7