CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)
一、安裝Apache
# yum install -y httpd httpd-devel
# systemctl start httpd.service # 啟動(dòng) # systemctl stop httpd.service # 關(guān)閉 # systemctl restart httpd.service # 重啟 # systemctl enable httpd.service # 開(kāi)機(jī)自啟
防火墻開(kāi)放80端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --reload
開(kāi)啟Apache,外網(wǎng)已經(jīng)可以通過(guò)ip訪問(wèn)Apache的默認(rèn)頁(yè)面了
二、安裝Python36、pip3、virtualenv
# yum install -y epel-release # yum install -y python36 # python36 -V Python 3.6.6
# yum install -y python36-setuptools # easy_install-3.6 pip # pip3 -V pip 18.1 from /usr/local/lib/python3.6/site-packages/pip-18.1-py3.6.egg/pip (python 3.6)
# pip3 install virtualenv
三、創(chuàng)建項(xiàng)目
創(chuàng)建flask項(xiàng)目(最簡(jiǎn)單的,一個(gè)項(xiàng)目文件夾、一個(gè)啟動(dòng)文件)
# mkdir /var/www/flask_test # 項(xiàng)目文件夾 # vi /var/www/flask_test/app.py # 啟動(dòng)文件
啟動(dòng)文件例子:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World'
@app.route('/hello')
def hello():
name = request.args.get('name','')
return 'Hello ' + name + '!'
if __name__ == '__main__':
app.run()
在項(xiàng)目文件夾下創(chuàng)建虛擬環(huán)境,安裝flask
# cd /var/www/flask_test # virtualenv py3env # 創(chuàng)建虛擬環(huán)境 # source py3env/bin/activate # 進(jìn)入虛擬環(huán)境 (py3env) # pip install flask # 安裝flask (py3env) # deactivate # 退出虛擬環(huán)境
四、在虛擬環(huán)境中用pip安裝mod_wsgi
# yum install -y python36-devel.x86_64 # 一個(gè)依賴,不安裝的話,下面pip會(huì)報(bào)錯(cuò)。。 # source py3env/bin/activate # 進(jìn)入虛擬環(huán)境 (py3env) # pip install mod_wsgi # 安裝mod_wsgi (py3env) # mod_wsgi-express install-module # 執(zhí)行該命令,把輸出內(nèi)容復(fù)制下來(lái) LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so" WSGIPythonHome "/var/www/flask_test/py3env" (py3env) # deactivate # 退出虛擬環(huán)境
修改Apache的配置
# vi /etc/httpd/conf/httpd.conf
復(fù)制上面得到的這行內(nèi)容,添加到配置文件的最后
五、配置mod_wsgi
# vi /var/www/html/flask_test/app.wsgi
寫入以下內(nèi)容(根據(jù):https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html)
activate_this = '/var/www/flask_test/py3env/bin/activate_this.py' with open(activate_this) as file_: exec(file_.read(), dict(__file__=activate_this)) import sys sys.path.insert(0, '/var/www/flask_test') from app import app as application
配置Apache
# vi /etc/httpd/conf/httpd.conf
寫入以下內(nèi)容(根據(jù):https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html#id1)
<VirtualHost *:80>
ServerName example.com
WSGIScriptAlias / /var/www/flask_test/app.wsgi
<Directory /var/www/flask_test>
Require all granted
</Directory>
</VirtualHost>
OK了,啟動(dòng)Apache,通過(guò)這臺(tái)服務(wù)器的ip就能訪問(wèn)網(wǎng)頁(yè)了
測(cè)試一些app.py里面寫的兩個(gè)路徑


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下防火墻的簡(jiǎn)單配置與插入規(guī)則介紹
這篇文章主要介紹了Linux下防火墻的簡(jiǎn)單配置與插入規(guī)則介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11
CentOS7 mini的安裝和靜態(tài)ip設(shè)置教程
本篇文章主要介紹了CentOS7 mini的安裝和靜態(tài)ip設(shè)置教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
在Linux環(huán)境下采用壓縮包方式安裝JDK 13的方法
JDK(Java Development Kit)是Sun公司(后被Oracle收購(gòu))推出的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的開(kāi)發(fā)工具包,擁有這個(gè)工具包之后我們就可以使用Java語(yǔ)言進(jìn)行程序設(shè)計(jì)和開(kāi)發(fā)。這篇文章主要介紹了在Linux環(huán)境下采用壓縮包方式安裝JDK 13,需要的朋友可以參考下2019-10-10
linux把一個(gè)文件的內(nèi)容復(fù)制到另一個(gè)文件的末尾
這篇文章主要介紹了linux把一個(gè)文件的內(nèi)容復(fù)制到另一個(gè)文件的末尾,文中給大家提到了linux 把文件末尾輸出到另一個(gè)文件的方法,需要的朋友可以參考下2019-08-08
使用nginx來(lái)負(fù)載均衡 本文在window與linux下配置nginx實(shí)現(xiàn)負(fù)載
使用nginx來(lái)負(fù)載均衡,本文在window與linux下配置nginx實(shí)現(xiàn)負(fù)載2010-03-03

