Centos7部署Flask

一、安装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/oneflask        # 项目文件夹
# vi /var/www/oneflask/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/oneflask
# 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/oneflask/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/oneflask/app.wsgi

写入以下内容

activate_this = ‘/var/www/oneflask/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/oneflask‘)
from app import app as application

六、配置Apache

# vi /etc/httpd/conf/httpd.conf

写入以下内容

<VirtualHost *:80>
    ServerName example.com
    WSGIScriptAlias / /var/www/oneflask/app.wsgi
    <Directory /var/www/oneflask>
        Require all granted
    </Directory>
</VirtualHost>

重启Apache

service httpd restart

配置完成

原文地址:https://www.cnblogs.com/hanbinglengxie/p/11201841.html

时间: 2024-07-31 17:32:39

Centos7部署Flask的相关文章

CentOS7部署Flask+Gunicorn+Nginx+Supervisor

1. Git客户端 Win10安装git for windows 1.1 设置Git全局参数 打开Git Bash $ git config --global user.name "Alice-HomePC" $ git config --global user.email "[email protected]" 1.2 生成SSH Key 打开Git Bash,可使用-C选项指定公钥的说明信息 $ ssh-keygen -t rsa -C "Alice-

生产环境中CentOS7部署NET Core应用程序

NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. 部署ASP.NET Core应用程序 配置Nginx 配置守护服务(Supervisor) 这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方案,今天

Centos下部署Flask

尝试在Centos6.5下部署Flask应用并成功,记录一下步骤,参数为什么这样配置还需要再研究uwsgi和Nginx才能回答. Python版本升级2.7 测试机器centos6.5默认自带的python版本是2.6.6,因此需要升级.我们采用Anacond的方式进行升级. 升级过程: 下载anaconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载Anaconda2-4.3.1-Linux-x86_64.sh 拉到服务器

aws实例部署flask报错script-timed-out-before-returning-headers-application-py

来源:http://www.aisir.cn/2017/07/15/aws实例部署flask报错script-timed-out-before-returning-headers-application-py/ [Thu Jul 13 13:21:32.542375 2017] [core:error] [pid 25744] [client 127.0.0.1:48852] Script timed out before returning headers: application.py [T

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用

我在很多的博客中都看过有关Flask应用的部署,也有很多博主在开博后都记录了部署的教程,因为其中的坑可以说不少.一开始我在网上看到相比较与Ubuntu,CentOS因为更新少作为服务器的操作系统会更加稳定.所以在第一次购买云服务器时,我选择了CentOS,后来由于CentOS不同发行版的Nginx缘故,我又换成了Ubuntu的镜像 首先呢,我们先来了解下关于Web服务器与Web应用还有WSGI之间的联系 一.介绍 WSGI(Web Server Gateway Interface),翻译为Pyt

Centos7部署Kubernetes集群+flannel

centos7 部署Kubernetes+flannel https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html kubernetes集群部署DashBoard http://www.cnblogs.com/zhenyuyaodidiao/p/6500897.html 原文地址:http://blog.51cto.com/lookingdream/2094162

centos7部署MongoDB数据库复制集(超详细)

centos7部署MongoDB数据库复制集(超详细)重点:复制集概述:复制集实现原理:复制集的应用案例:一.概述:组成:Mongodb复制集(副本集replica set)由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary通过oplog来同步Primary的数据,保证主节点和从节点数据的一致性,复制集在完成主从复制的基础上,通过心跳机制,一旦primary节点出现宕

CentOS-7 部署Django----安装Nginx

CentOS-7 部署Django----安装Nginx 在CentOS-7上部署Nginx步骤: 截至此时,Nginx的稳定版本为1.14,已下安装版本为1.14 1.yum的存储库中不存在nginx信息,所以需要预添加: 官方的源:# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 国内的源:# yum install epel-releas