前言

出于学习和实践的目的,近期自己写了一个小项目关于flask的API项目,涉及到服务器的上线部署问题,这里就做一个详细的记录和分享吧~欢迎一起交流学习指正~

正文

一、centos7安装python3

使用centos7的服务器操作系统的小伙伴都知道,centos自带的python版本是2.7的版本,因此我们首先要做的就是针对python版本进行升级,安装python3.x版本,目前我看了虽然有3.9的版本,但是我这边使用的是3.8版本,一下是centos7安装python3.8.2版本的安装步骤:

1)、python3下载

python所有版本下载地址:所有版本下载地址

python3.8.2下载地址:3.8.2版本下载地址

下载命令:

wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz

注意:如果你的服务器带宽等等因素导致下载慢的话可以选在本机下载后上传,不然慢的机器你要等待很久

解压命令:

tar zxf Python-3.8.0.tgz

解压后进入软件目录:

cd Python3.8.2

2)、安装前准备工作

由于编译python的源码需要一些必要的依赖工具,因此首先我们得保证系统中具备,因此可以通过以下命令进行检测和安装更新:

yum update -y
yum groupinstall -y 'Development Tools'
yum install -y gcc openssl-devel bzip2-devel libffi-devel

3)、编译安装python3.8.2

./configure prefix=/usr/local/python3.8.2 --enable-optimizations
// 如果编译出错,可以尝试取消后面的--enable-optimizationsmake && make installexport PATH=$PATH:/usr/local/python3.8.2/bin/
// 加入系统环境变量中,其中/usr/local/python3.8.2/bin为你自己服务器相应目录

4)、创建命令软连接

创建软连接的目的就是为了之后我们能够方便快速的使用python3的命令:

创建python3的命令软连接:

ln -s /usr/local/python3.8.2/bin/python3 /usr/bin/python3

创建pip3的命令软连接:

ln -s /usr/local/pip3.8.2/bin/pip3 /usr/bin/pip3

注:很多人说要去安装pip3, 其实我们在安装完成python3.8.2的同时,pip3就已经存在了,所以无需额外安装。

5)、校验是否安装成功

校验是否安装成功只需要输入检测python3版本即可知道,命令如下:

python3 -V

如果出现 Python 3.8.2 的python版本信息即安装成功了。

二、centos7安装Mysql

由于mysql 版权方面的限制, centos 7 没有内置mysql 服务器, 必须从mysql 官方进行安装。

安装mysql5.7的源:

yum install http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

进行检测更新:

yum update

快速安装mysql5.7,如果你想编译安装的可以下载mysql5.7的源码进行编译安装:

yum install mysql-server

安装成功后启动mysql服务:

systemctl start mysqld

为了后期方便,可以设置mysql服务开机自启:

systemctl enable mysqld

注意:mysql 5.7 在安装完成的时候会生成一个临时密码, 我们需要找到日志 文件`/var/log/mysqld.log`来获取这个临时密码,可以打开文件查看也可以通过以下命令获取:

 grep 'temporary password' /var/log/mysqld.log

至此mysql就已经成功安装到了centos7服务器中了,建议使用临时密码登录mysql进行密码修改。

三、flask项目部署到服务器

1)、创建项目文件及虚拟环境

切换到自己的项目目录,然后创建虚拟环境文件夹

mkdir -p venv

然后创建虚拟环境

python3 -m venv venv

激活虚拟环境:

source venv/bin/activate

2)、安装项目依赖

到本地工程下导出 requirements.txt并上传到项目目录下

pip freeze >requirements.txt

然后根据 requirements.txt 文件安装依赖包:

pip3 install -r requirements.txt`

3)、安装gunicorn

在激活的虚拟环境中进行gunicorn安装,这样避免了部分软件依赖找不到的问题,安装命令如下:

pip3 install gunicorn

四、运行项目

由于使用了gunicorn,所以启动项目就非常简单了:

gunicorn start:app
// start为项目入口文件名
// app为服务对象

如果你想指定端口和支持ip端口访问项目可以使用以下命令启动:

gunicorn -b 0.0.0.0:8000 start:app

运行后看到listening 监听即启动成功了~

gunicorn启动flask项目成功截图

五、启动端口提供外网访问

1)、服务器提供商管理后台配置

现在的云服务器不论是亚马逊、阿里云还是腾讯云等都提供了一个叫做安全组的东西,这个主要是配置该服务器的一些外网通信哪一些是支持许可外网访问的,这里将8000端口配置允许外网访问即可。

2)、centos7开放端口配置

centos7开放端口其实就是将端口加入防火墙外,允许外网访问。centos7防火墙使用的是firewall

最极端的方式就是关闭防火墙(不推荐

systemctl stop firewalld

配置防火墙允许端口

// 开启端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent// 重载配置
firewall-cmd --reload// 或者重启防火墙
systemctl restart firewalld

至此,Centos7 + Mysql5.7 + Gunicorn + Flask的flask项目部署上线就已经做好了~

如果你觉得对你有所帮助欢迎大家点赞喜欢支持~

不像程序员的IT男——欢迎大家交流指正~

centos7 ifconfig命令找不到_centos7+mysql+gunicorn+flask项目部署相关推荐

  1. centos7 ifconfig命令找不到_分享一个解决 sudo 命令找不到环境变量的小技巧

    公众号关注 「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux ! 如何解决 sudo 命令找不到环境变量的问题 在通过 sudo 运行命令时,系统会默认重置环境变量为安全的环境变量, ...

  2. centos7 ifconfig命令找不到_在vbox中创建Centos7服务器集群(1)-- Linux服务器安装

    服务器集群 1.工欲善其事必先利其器,首先下载Centos7系统镜像 Centos7-Linux系统网址:http://mirrors.163.com/centos/7/isos/x86_64/ Ce ...

  3. centos7 ifconfig命令找不到_Linux基础命令大全,你找不到的这都有

    1 pwd:显示当前路径 cd :切换目录 用法:cd cd ../ 切换到上级目录 cd / 切换到根目录 cd ~ (或只有cd )切换到当前用户主目录(home底下以用户名命名的文件夹) /ro ...

  4. 解决ifconfig命令找不到

    今天刚在Vmware上装了一个Centos玩玩,使用的是最小化安装模式,安装完发现了ifconfig命令找不到,如下图所示 一.解决方案 1.找到ifcfg-ens33文件 此文件的目录在/etc/s ...

  5. linux下ifconfig命令找不到解决办法

    ifconfig命令找不到 解决办法 首先,输入yum search ifconfig 命令搜索是否有该安装包 !!!发现有一个匹配的net-tools.x86_64安装包,这是一个基本网路工具包 安 ...

  6. Flask项目部署云服务器 CentOS7.3+Redis+MySQL+Flask+Nginx+Gunicorn +Supervisorctl

    Flask项目部署云服务器 CentOS7.3+Redis+MySQL+Flask+Nginx+Gunicorn +Supervisorctl 项目运行环境 阿里云(单核CPU, 2G内存, Cent ...

  7. 项目部署mysql安装_Tomcat7+jdk+mysql安装及项目部署

    Tomcat7+jdk+mysql安装及项目部署 1. 下载tomcat7.jdk.mysql apache-tomcat-7.0.42.tar.gz jdk-7u25-linux-i586.gz m ...

  8. ifconfig 命令找不到解决

    我在root下输入ifconfig etho up ,可是提示我没有ifconfig这个命令...这是怎么一回事呢? ------------- 最近第N例遇到这样问题的了. 出现这样的问题的原因是 ...

  9. CentOS系统ifconfig命令找不到怎么办

    ifconfig命令用于显示或设置网络设备,在调试或调优的时间经常使用.对于这个命令,一般只要掌握如何查看,如何设置IP地址基本就可以了,对于网络钻的比较深的,还需要更多一些参数. 前段时间CentO ...

最新文章

  1. 【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句
  2. dedecms嵌套栏目
  3. codeigniter 中使用 phpexcel
  4. 学了Python就能上手业务?你还差得远!
  5. SQL Server之增删改操作
  6. Codeforces Round #737 (Div. 2)
  7. Windows 安装 MongoDB 和 可视化工具Robo3T
  8. html鼠标响应事件吗,学习JavaScript鼠标响应事件
  9. 使用@RequestParam注解和泛型遇到的问题
  10. pandas将所0值修改为NaN
  11. 2014.8.25二分法,二维数组
  12. 查找算法系列之复杂算法:哈希查找
  13. 搜索附近店铺到用户的距离的小经验
  14. MEMS陀螺仪传感器的原理
  15. 机器学习:混淆矩阵、准确率、错误率、灵敏度、特异度、精准率、召回率、F-Measure、ROC曲线 PR曲线
  16. RAW、YUV、RGB、JPEG格式简介
  17. android支持pcm格式转换,Android中Pcm文件转Amr文件
  18. 云和恩墨多个标杆案例入选《2021年信创产业发展报告》,将持续推动数据库产业进步...
  19. Python自学笔记1(think python)
  20. winsock 常用函数介绍

热门文章

  1. 跨链Cosmos(6)ABCI 原理
  2. 区块链BaaS云服务(17)纸贵科技Zeus多链网络Z-Ledger联盟链
  3. [ARM异常]-ARM体系中是否支持中断嵌套
  4. [答疑]-ATF中异常向量表为何没有实现“Current Exception level with SP_ELx, x>0.“
  5. 【攻防世界009】流浪者
  6. 虎符杯——虚拟机逆向
  7. 【CTF大赛】2021 DASCTF July cybercms 一探再探
  8. 漏洞评估的优先级决定了网络安全保护的成本
  9. py脚本得到Python的版本
  10. Windows进程与线程学习笔记(九)—— 线程优先级/进程挂靠/跨进程读写