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.zip )https://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