一、安装Apache
# yum install -y httpd httpd-devel
# systemctl start httpd.service # 启动 # systemctl stop httpd.service # 关闭 # systemctl restart httpd.service # 重启 # systemctl enable httpd.service # 开机自启
防火墙开放80端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --reload
开启Apache,外网已经可以通过ip访问Apache的默认页面了
二、安装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
三、创建项目
创建flask项目(最简单的,一个项目文件夹、一个启动文件)
# mkdir /var/www/flask_test # 项目文件夹 # vi /var/www/flask_test/app.py # 启动文件
启动文件例子:
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
# cd /var/www/flask_test # virtualenv py3env # 创建虚拟环境 # source py3env/bin/activate # 进入虚拟环境 (py3env) # pip install flask # 安装flask (py3env) # deactivate # 退出虚拟环境
四、在虚拟环境中用pip安装mod_wsgi
# 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的配置
# vi /etc/httpd/conf/httpd.conf
复制上面得到的这行内容,添加到配置文件的最后
LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
五、配置mod_wsgi
# vi /var/www/html/flask_test/app.wsgi
写入以下内容(根据: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
写入以下内容(根据: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了,启动Apache,通过这台服务器的ip就能访问网页了
测试一些app.py里面写的两个路径
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
我正在尝试部署我构建的用于部署在Apache服务器上的Flask Web应用程序。我在Raspberry Pi 3上使用Raspbian(Jessie)OS。该应用程序在flask内置的开发Web服务器上运行完美,但我无法在Apache服务器上部署它。 这就是我所做的: conf文件为:etc/apach2/sites available/arduinoweb。形态: 中的WSGI脚本文件: Ap
问题内容: 有人可以解释守护程序模式下的apache mod_wsgi和线程模式下的django fastcgi之间的区别。我认为它们都使用线程进行并发。 假设我将nginx用作Apache mod_wsgi的前端。 更新: 我正在比较在fastemon中内置的django(./manage.py method = threaded maxchildren = 15)和mod_wsgi在“守护程序
下面的步骤在Apache-2.2.3 (Red Hat Enterprise Linux 5.2, x86_64),mod_wsgi-2.0中测试通过。(译者注:本人在Windows2003 + Apache-2.2.15 + mod_wsgi-3.0也测试通过) 注意: 您可以使用您自己的项目名称替换’appname’。 您可以使用您自己的文件名称替换’code.py’。 /var/www/we
问题内容: 我已经运行了一个基本的“ hello world” Flask应用程序。 我在使用Apache 2.4的Ubuntu 14.04上。我已经安装了mod_wsgi。 我创建了一个以容纳安装了flask的virtualenv创建的Python2。 但是,我希望我的flaskapp导入我编写的Python3.x模块。 我需要怎么做才能做到这一点? 我尝试创建一个并修改 但是我认为这还不够。这
我想在Apache服务器上部署我的Flask应用程序。我在服务器上有一个帐户,并被告知“服务器可用于运行用Python编写的脚本和Web应用程序(使用django和mod_wsgi)”。 我在Windows上,要传输文件,我必须使用FTP客户端,所以我使用WinSCP。 安装mod_wsgi并不像我预期的那样简单,我无法在线获得任何清晰的文档。 因为服务器已经可以使用mod_wsgi运行Pytho
我正试图使用mod\u wsgi在Apache web服务器上部署我的flask应用程序。部署后,当我转到配置为返回简单文本消息的“healthCheck”URL时,应用程序没有响应,正在超时。 这是我的wsgi文件: 我在apache日志中也没有看到任何错误。可能是什么问题?请问我是否需要任何额外的详细信息。