Centos7:Flask-Apache部署

系列文章目录

RHCE第0章:RHCE开始前的准备
RHCE第1章:Web服务器(上)
RHCE第1章:Web服务器(下)
RHCE第2章:DNS服务
RHCE第3章:DHCP服务器
RHCE第4章:Firewall服务、
RHCE第5章:SELinux
RHCE第6章:nfs网络文件系统
RHCE第7章:samba文件共享
RHCE第8章:链路聚合和桥接
RHCE第9章:KVM虚拟化技术
RHCE第10章:时间服务器
RHCE第11章:Mariadb数据库(上)
RHCE第11章:Mariadb数据库(中)
RHCE第11章:Mariadb数据库(下)
RHCE第11章:Mariadb数据库(后)
RHCE第12章:FTP服务
RHCE第13章:ISCSI存储网络
RHCE第14章:邮件服务器
RHCE第15章:Kickstart
Centos7:http/PhP升级
Centos7:Flask-Apache部署


文章目录

  • 系列文章目录
  • 前言
  • 一、安装Python虚拟环境
    • 1.编译安装
    • 2.虚拟环境创建
  • 二、安装mod_wsgi
  • 三、编写配置文件
    • 1.flask文件
    • 2.虚拟环境文件
    • 3.httpd文件
  • 总结


前言

之前写过几个Flask网页来完成一些操作,一直使用的都是Screen+uwsgi所以在并发上边支持的不太好(反正就我自己用),但最近完成的一个项目,对并发要求稍微高一点,前几天也在升级软件,就顺便把Flask的安装部署也记录一下。


一、安装Python虚拟环境

1.编译安装

我使用的是Flask==2.1.2官方的最新稳定版。官方建议Python环境使用3.7以上,所以我选择了3.8.5版本编译安装。
官方下载地址
在这里插入图片描述
下载完成后上传服务器,解压-编译-安装

tar -xvf Python-3.8.5.tar.xz 
cd Python-3.8.5
./configure --enable-shared
make
make install

在这里插入图片描述
安装完成之后,会自动添加到环境变量

2.虚拟环境创建

自己选择一个合适的地方创建虚拟环境。

 python3 -m venv flask
 source flask/bin/activate

在这里插入图片描述
现在可以通过pip命令导入自己需要的包。

二、安装mod_wsgi

官方教程中,可以使用yum命令安装,但实际操作不行,所以还是选择编译安装。
mod_wsgi 4.9.4下载
在这里插入图片描述
编译的时候要指定之前安装好的apache和python

tar -xvf mod_wsgi-4.9.4.tar.gz
cd mod_wsgi-4.9.4
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/opt/env/flask/bin/python3
make
make install

之后将安装的模块添加到apache中
在这里插入图片描述

三、编写配置文件

1.flask文件

在自己的项目,目录下创建wsgi.py文件
在这里插入图片描述
具体内容如下

activate_this = '/opt/env/flask/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/web")

from app import app as application

这时固定写发只有这里面只有两个参数需要改变,一个是第一行的虚拟环境路径,一个是第五行的自己的项目目录路径。

2.虚拟环境文件

第一个文件在虚拟环境中是不存在的,需要我们自己创建
具体内容也是固定写法
vim /opt/env/flask/bin/activate_this.py

"""By using execfile(this_file, dict(__file__=this_file)) you will
activate this virtualenv environment.

This can be used when you must use an existing Python interpreter, not
the virtualenv bin/python
"""

try:
    __file__
except NameError:
    raise AssertionError(
        "You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
import sys
import os

old_os_path = os.environ['PATH']
os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if sys.platform == 'win32':
    site_packages = os.path.join(base, 'Lib', 'site-packages')
else:
    site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
# Move the added items to the front of the path:
new_sys_path = []
for item in list(sys.path):
    if item not in prev_sys_path:
        new_sys_path.append(item)
        sys.path.remove(item)
sys.path[:0] = new_sys_path

3.httpd文件

编写apache的conf文件
最底下添加一行,意思是将这个目录下的.conf文件都导入
在这里插入图片描述
编写.conf文件(前缀随意)

Listen 5000(可以自己设定端口)
<VirtualHost *:5000>
    ServerName 你的域名

    WSGIDaemonProcess web user=www group=www threads=5
    WSGIScriptAlias / /var/www/web/wsgi.py(你的配置文件)


    ErrorLog /var/www/web/error.log(日志目录)
    CustomLog /var/www/web/access.log combined
    DocumentRoot /var/www/web(项目目录)

    <Directory /var/www/web>
        WSGIProcessGroup web(项目名称)
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

然后重启apache服务器,浏览器访问即可。
在这里插入图片描述

注意 一些常用的运维知识,比如服务器开放端口之类,请自行学习,也可以看我的RHCE系列专栏。


总结

至此Flask-Apache的部署完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/43766.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VMware Fusion 14 Tech Preview - 适用于 Arm 的 Windows 11 上的全面 3D 加速

VMware Fusion 14 Tech Preview - 适用于 Arm 的 Windows 11 上的全面 3D 加速 VMware Fusion Tech Preview 2023 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-fusion-14/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;…

uniapp 微信小程序 input详解 带小数点的input、可查看密码的输入框input

官网文档地址 1、template <!-- 本示例未包含完整css&#xff0c;获取外链css请参考上文&#xff0c;在hello uni-app项目中查看 --> <template><view><view class"uni-common-mt"><view class"uni-form-item uni-column"&g…

LeetCode | Heap | 502.

502. IPO 是贪心算法in general。 一共两个变量&#xff1a;profit和capital。profit要求是找最大的。capital要求小于w。 两种筛选方法&#xff1a;把capital符合要求的排个序&#xff0c;找profit最大的。按照profit排序&#xff0c;从大到小找capital满足条件的。 哪种更…

前端密码加密 —— bcrypt、MD5、SHA-256、盐

&#x1f414; 前期回顾悄悄告诉你&#xff1a;前端如何获取本机IP&#xff0c;轻松一步开启网络探秘之旅_彩色之外的博客-CSDN博客前端获取 本机 IP 教程https://blog.csdn.net/m0_57904695/article/details/131855907?spm1001.2014.3001.5501 在前端密码加密方案中&#xff…

OSI七层模型和TCP/IP四层模型以及五层模型

OSI七层模型&#xff08;Open System Interconnect&#xff09;即开放系统互连参考模型&#xff0c;是由ISO&#xff08;International Organization for Standardization&#xff09;国际标准化组织提出的&#xff0c;用于计算机或通信系统间互联的标准体系。 从上到下可分为…

涵子来信——自己的电脑——谈谈想法

大家好&#xff1a; 上一次谈论了苹果的那些事&#xff0c;今天我们来聊聊电脑。 我的第一台电脑现在成了这样子&#xff1a; 很多人以为是我自己拆了电脑做研究&#xff0c;其实是我的第一台电脑&#xff0c;真的坏了。 2021年&#xff0c;我有了属于我自己的第一台电脑&am…

线性神经网络——softmax 回归随笔【深度学习】【PyTorch】【d2l】

文章目录 3.2、softmax 回归3.2.1、softmax运算3.2.2、交叉熵损失函数3.2.3、PyTorch 从零实现 softmax 回归3.2.4、简单实现 softmax 回归 3.2、softmax 回归 3.2.1、softmax运算 softmax 函数是一种常用的激活函数&#xff0c;用于将实数向量转换为概率分布向量。它在多类别…

【Ansible 自动化配置管理实践】01、Ansible 快速入门

目录 一、Ansible 快速入门 1.1 什么是 Ansible ​1.2 Ansible 主要功能 1.3 Ansible 的特点 1.4 Ansible 基础架构 二、Ansible 安装与配置 2.1 Ansible 安装 2.2 确认安装 三、Ansible 配置解读 3.1 Ansible 配置路径 3.2 Ansible 主配置文件 3.3 Ansi…

【stable diffusion】保姆级入门课程04-Stable diffusion(SD)图生图-局部重绘的用法

目录 0.本章素材 1.什么是局部重绘 2.局部重绘和涂鸦有什么不同 3.操作界面讲解 3.1.蒙版模糊 3.2.蒙版模式 3.3.蒙版蒙住的内容 3.4.重绘区域 4.局部重绘的应用&#xff08;面部修复&#xff09; 5.课后训练 0.本章素材 chilloutmix模型(真人模型)百度地址&#xf…

Shedskin 使用

Shedskin是一个编译器工具&#xff0c;可以将Python代码编译为C语言。先说结论吧&#xff0c;这玩意现在就只是个玩具&#xff0c;因为使用ShedSkin编译的程序不能自由使用Python标准库&#xff0c;目前只支持大约17个常用模块&#xff1a; bisect collections ConfigParser c…

位运算修行手册

*明明自觉学会了不少知识&#xff0c;可真正开始做题时&#xff0c;却还是出现了“一支笔&#xff0c;一双手&#xff0c;一道力扣&#xff08;Leetcode&#xff09;做一宿”的窘境&#xff1f;你是否也有过这样的经历&#xff0c;题型不算很难&#xff0c;看题解也能弄明白&am…

htmlCSS-----背景样式

目录 前言&#xff1a; 背景样式 1.背景颜色 background-color 2.背景图片 background-image 背景的权重比较 代码示例&#xff1a; 前言&#xff1a; 很久没写文章了&#xff0c;会不会想我呢&#xff01;今天我们开始学习html和CSS的背景样式以及文字样式&#xff…

python用selenium模拟谷歌浏览器点页面

1、cmd安装selenium&#xff0c;输入pip install selenium 2、模拟点击热搜第一条进去&#xff0c;连接如下 https://weibo.com/newlogin?tabtypeweibo&gid102803&openLoginLayer0&urlhttps%3A%2F%2Fweibo.com%2F 3、查看谷歌版本 4、并去下面下载对应版本的web…

原神盲盒风格:AI绘画Stable Diffusion原神人物公仔实操:核心tag+lora模型汇总

本教程收集于&#xff1a;AIGC从入门到精通教程汇总 在这篇文章中&#xff0c;我们将深入探讨原神盲盒的艺术风格&#xff0c;以及如何运用AI绘画技术&#xff08;Stable Diffusion&#xff09;——来创造原神角色公仔。我们将通过实践操作让读者更好地理解这种技术&#xff0…

应用层协议:httphttps,如何进行安全握手?

目录 应用层协议序列化与反序列化JSON网络版本计算器URLurlencode和urldecode HTTP协议简单认识HTTP协议HTTP协议格式HTTP的一些方法HTTP状态码Http的特征cookieConnection HTTPSHTTPS是什么加密与解密常见的加密方式对称加密非对称加密 什么是数据摘要什么是证书HTTPS如何安全…

pytorch工具——pytorch中的autograd

目录 关于torch.tensor关于tensor的操作关于梯度gradients 关于torch.tensor 关于tensor的操作 x1torch.ones(3,3) xtorch.ones(2,2,requires_gradTrue) print(x1,\n,x)yx2 print(y) print(x.grad_fn) print(y.grad_fn)zy*y*3 outz.mean() print(z,out)注意 atorch.randn(2,…

Zabbix监控

文章目录 Zabbix基本概念zabbix介绍zabbix特性zabbix结构 安装和配置Zabbix节点规划案例实施基础环境配置Zabbix安装安装和配置数据库启动zabbix服务 Zabbix界面(1)登录界面(2)中文界面(3)修改登录密码(4)添加被监控机器(5)图形乱码解决(6)发送告警到邮箱创建动作添加操作邮件发…

行为型模式 - 访问者模式

概述 定义&#xff1a; 封装一些作用于某种数据结构中的各元素的操作&#xff0c;它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 结构 访问者模式包含以下主要角色: 抽象访问者&#xff08;Visitor&#xff09;角色&#xff1a;定义了对每一个元素&…

通过自动化单元测试的形式守护系统架构

目录 0前言 1 背景 2 为什么选择 Archunit 3 Archunit 是什么 4 引入 Archunit 4.1 开始就是如此简单 4.2 如何组织架构规则 4.3 团队如何规范化 0前言 通过自动化单元测试的形式守护系统架构是一种有效的方式&#xff0c;可以确保系统在不断演进和修改的过程中保持稳…

关于Swift中闭包和OC中block对局部变量基本数据类型值的捕获

翻了很多文章&#xff0c;发现关于Swift闭包关于上下文变量捕获这块&#xff0c;都没有说的很详细&#xff0c;或者Swift2这样的老版本已经不适用了&#xff0c;问了GPT也是和自己实验的结果不一样&#xff0c;记录下来。 一&#xff1a;OC的block 首先&#xff0c;回顾一下O…