一、安装Apache
1
|
# yum install -y httpd httpd-devel |
1
2
3
4
|
# systemctl start httpd.service # 启动 # systemctl stop httpd.service # 关闭 # systemctl restart httpd.service # 重启 # systemctl enable httpd.service # 开机自启 |
防火墙开放80端口
1
2
|
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --reload |
开启Apache,外网已经可以通过ip访问Apache的默认页面了
二、安装Python36、pip3、virtualenv
1
2
3
4
|
# yum install -y epel-release # yum install -y python36 # python36 -V Python 3.6.6 |
1
2
3
4
|
# 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 ) |
1
|
# pip3 install virtualenv |
三、创建项目
创建flask项目(最简单的,一个项目文件夹、一个启动文件)
1
2
|
# mkdir /var/www/flask_test # 项目文件夹 # vi /var/www/flask_test/app.py # 启动文件 |
启动文件例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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() |
在项目文件夹下创建虚拟环境,安装flask
1
2
3
4
5
6
|
# cd /var/www/flask_test # virtualenv py3env # 创建虚拟环境 # source py3env/bin/activate # 进入虚拟环境 (py3env) # pip install flask # 安装flask (py3env) # deactivate # 退出虚拟环境 |
四、在虚拟环境中用pip安装mod_wsgi
1
2
3
4
5
6
7
8
|
# yum install -y python36-devel.x86_64 # 一个依赖,不安装的话,下面pip会报错。。 # source py3env/bin/activate # 进入虚拟环境 (py3env) # pip install mod_wsgi # 安装mod_wsgi (py3env) # mod_wsgi-express install-module # 执行该命令,把输出内容复制下来 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 # 退出虚拟环境 |
修改Apache的配置
1
|
# vi /etc/httpd/conf/httpd.conf |
复制上面得到的这行内容,添加到配置文件的最后
五、配置mod_wsgi
1
|
# vi /var/www/html/flask_test/app.wsgi |
写入以下内容(根据:https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html)
1
2
3
4
5
6
7
|
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
1
|
# vi /etc/httpd/conf/httpd.conf |
写入以下内容(根据:https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html#id1)
1
2
3
4
5
6
7
|
< VirtualHost *:80> ServerName example.com WSGIScriptAlias / /var/www/flask_test/app.wsgi < Directory /var/www/flask_test> Require all granted </ Directory > </ VirtualHost > |
OK了,启动Apache,通过这台服务器的ip就能访问网页了
测试一些app.py里面写的两个路径
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/yuzw_zw/article/details/83154633