apache+mod_wsgi+flask 环境搭建
Posted 灬鬼谷灬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache+mod_wsgi+flask 环境搭建相关的知识,希望对你有一定的参考价值。
apache + flask + mod_wsgi
Table of Contents
1 服务器框架 apache mod_wsgi flask
1.1 安装 flask
1.1.1 通过yum或者pip均可以很方便的安装flask
- 测试flask是否安装成功是通过新建 run.py
from flask import Flask app = Flask(__name__) @app.route('\\') def index(): return "Hello Flask" if __name__ == "__main__": app.run(host="0.0.0.0")
- 运行 python run.py 通过 localhost:5000 就可以访问,但是不知道问什么远程却访问不了
1.2 安装 mod_wsgi
1.2.1 yum install mod_wsgi(pip install mod_wsgi)
编写配置文件flask.wsgi
import sys sys.path.insert(0, "/data/web") #工程根目录,即wsgi文件的路径 from run import app as application
1.3 安装 apache
1.3.1 一般说来直接yum install apache 可以安装,这里说的时apache虚拟主机的配置
- 找到配置文件的目录 /**/conf/httpd.conf,将以下代码注释去掉
include conf/extra/httpd-vhosts.conf
- 找到conf/extra/httpd-vhosts.conf
<VirtualHost *:80> ServerName example.com WSGIScriptAlias / /data/web/flask.wsgi <Directory /data/web> Require all granted Require host ip Allow from all </Directory> </VirtualHost>
1.3.2 使用命令 locate mod_wsgi,找到mod_wsgi**.so文件,把它copy到apache的modules文件夹下
- 找到配置文件的目录 /**/conf/httpd.conf,添加以下代码
LoadModule wsgi_module modules/mode_wsgi**.so
1.4 一般来说,通过以上配置访问服务器ip地址,就可以看到Hello Flask
2 为了方便工程管理,在这将工程整理成如下的结构
假如我们的工程目录为 /data/web
+ 根目录 /data/web + flask.wsgi + app/ + __init__.py + views.py + static/ + css/ + js/ + images/ + templates/ + index.html + base.html
2.1 flask.wsgi 代码
import sys sys.path.insert(0, "/data/web") #工程根目录,即wsgi文件的路径 from app import app as application
2.2 __init__.py 代码
from flask import Flask
app = Flask(__name__)
from app import views
if __name__ == "__main__":
app.run(host="0.0.0.0")
2.3 views.py 代码
from app import app
@app.route('\\')
def index():
return "Hello Flask"
2.4 以上为一个工程的基本结构
apache+flask+mod_wsgi 关于python logging日志使用当在python中使用日志模块时,会出现错误的现象:permission denied的问题, 其实归根结底是一个权限的问题,只需要给err.log的添加用户权限即可
apache 默认的用户组和用户为 daemon:daemon,
使用 chown +R daemon:daemon err.log
以上是关于apache+mod_wsgi+flask 环境搭建的主要内容,如果未能解决你的问题,请参考以下文章
Flask、mod_wsgi 和 Apache:ImportError
如何在 Apache 和 mod_wsgi 中使用 Flask 路由?
初始化使用 Apache 和 mod_wsgi 运行的 Flask 应用程序