前言
前面已经将Flask框架的内容基本梳理完了,在这篇文章中荔枝会将Flask的部署上云的步骤跟大家分享一下,其实也是基于宝塔页面来进行配置的啦哈哈哈。荔枝也会将环境配置命令和数据库迁移步骤分享出来,下面就由荔枝把具体的操作梳理出来吧哈哈哈。
文章目录
前言
一、购买云服务器
二、远程SSH连接工具——PuTTy
2.1 下载地址
2.2 下载并安装
2.3 SSH测试
三、宝塔面板
3.1 安装宝塔面板
3.2 配置宝塔面板
四、搭建web环境
4.1 安装python环境
4.2 安装数据库并实现本地数据库迁移
五、项目实操部署
5.1 生成项目依赖
5.2 项目文件传输
5.3 安装项目环境
5.3.1 安装python3.8.1
5.3.2 安装虚拟环境
5.3.3 安装Flask
5.3.4 补充虚拟环境的命令
5.3.5 进程占用如何解决
5.3.6 将服务器挂在后台上运行
总结
云服务器其实跟我们本机上的服务器(比如你开发时的电脑)没有什么区别,我们需要给云服务器配置开发环境并进行调试。当然了,如果你是直接在Linux上开发的话,应该会更容易,弄个镜像拉取过去就好了。
一、购买云服务器
我们以华为云ECS弹性云服务器为例,各大厂商的云服务器大差不差,基本购买步骤差不多,插一嘴哈哈哈,要买还是腾讯的比较香,华为太贵了呜呜呜~
https://console.huaweicloud.com/ecm/?region=cn-north-4#/ecs/createVm
步骤:
- 进入控制台点击购买,依次选择计费的模式、可用区、CPU架构、规格、镜像和系统盘的大小
- 点击下一步网络配置
- 在用户第一次使用的时候要先创建虚拟私有云,操作比较简单这里就不赘述了。然后选择安全组,安全组的配置规则最好先默认就好,在实际部署的时候再想着改规则,之后选择带宽的大小和计费方式,这里需要看你个人的需求了。其它的如果没有特殊的需要就默认就好。
- 之后就是设置你的弹性云服务器的密码咯,如果没有特殊需求建议默认就好,点击下一步确认配置,选择购买的时长直接购买就好。
- 购买完成之后进入你个人的控制台界面,可以看到这时候就可以开机运行了哈哈,我们查看一下自己的云服务器的外网IP,记录下来待会要用。
二、远程SSH连接工具——PuTTy
这里下载的远程SSH工具主要是用来远程连接上我们的服务器并在上面安装宝塔面板,当然了,直接使用华为云网站上提供的终端工具也可以哈哈。
2.1 下载地址
Download PuTTY: latest release (0.78)
2.2 下载并安装
进入网站之后选择64-bit x86(Window系统),点击signature开始下载安装包。
直接安装就好,安装完成后运行PuTTY,在画红框的地方输入你的云服务器外网IP即可,注意你的安全组规则要开放22号端口,否则可能无法通过SSH连接到你的云服务器。
这里的地址:root@+你的外网地址
2.3 SSH测试
连接成功:
三、宝塔面板
3.1 安装宝塔面板
在PuTTY工具远程SSH连接上云服务器之后我们可以在终端中输入如下命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
这里需要注意,如果你的服务器是Centos 7.0及以上才用上述命令,如果不是或者是其它操作系统,请参考宝塔官网文档:
https://www.bt.cn/bbs/thread-19376-1-1.html
3.2 配置宝塔面板
在完成宝塔面板的安装之后,会出现下述的页面:
你需要记下外网地址、登录面板的账户和密码,如果忘了,执行如下命令:
bt default
安装完成后,在浏览器上输入面板外网地址,输入账号和密码进行登录,第一次需要你自己注册一个宝塔账号,进入之后选择左侧安装选项进行安装,时间有点长,耐心等待安装成功即可。
安装完环境之后可以看到如下页面:
四、搭建web环境
4.1 安装python环境
#查看python2安装路径
#which python
#创建文件夹安装python3
#mkdir /usr/local/python3
#cd /usr/local/python3
#
#安装依赖
#yum -y groupinstall "Development tools"#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
#
#安装python3(3.6.2)
#wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
#
#解压
#tar -xvJf Python-3.6.2.tar.xz
#编译
#cd Python-3.6.2
#./configure --prefix=/usr/local/python3
#make && make install
#
#创建软链接
#ln -s /usr/local/python3/bin/python3 /usr/bin/python3
#ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
4.2 安装数据库并实现本地数据库迁移
步骤:
- 在宝塔面板的软件商店那里下载mysql,如果有就不用下了;
- 回到数据库面板,将之前的数据库删掉,点击添加数据库;
- 填入数据库名字、密码、以及访问权限,我这里暂时将数据库的访问权限设置为本地数据库,提交。
其实网上有很多教程可以直接用一些文件传输工具来将本机上的代码文件打包发送到云服务器中比如Xshell 、 WinSCP。这里就先不用这些方法,荔枝直接在SQLyog中导出sql文件,再在宝塔面板直接从本地上传sql文件到云服务器。
- 在建好的数据库那里点击导入——从本地上传——选择你要传进去的数据库文件——上传完成记得在点击从本地上传下面点击导入即可。
验证
打开命令行终端,进行数据库查询,看看数据库是不是迁移成功了 。
mysql -uroot -p;show databases;#进入数据库
use 数据库名;#查看表名
show tables;#退出数据库
exit;
修改权限:
-
点击phpMyAdmin,找到你要修改的数据库,选中,点击权限
-
找到用户名是root,主机是%对应的root点击编辑权限,点击登录信息,将host选为任意主机,执行后选中全局权限再执行一次,后端就可以正常访问到了哈哈哈。
五、项目实操部署
5.1 生成项目依赖
在pycharm中生成项目依赖文件requirement.txt
这里有两种方式:
- 在终端进入项目目录,然后敲上这行命令:
pip freeze > requirement.txt
值得注意的是,使用该方法会将你环境中所有的依赖项都加进去哈哈,建议如果本机项目在虚拟环境中运行的就可以用,要不可能会出现环境冲突。
- 在终端中进入项目的目录,敲下这两行命令:
pip install pipreqspipreqs ./ --encoding=utf8
那么之后在云服务器中我们就可以直接下载requirements.txt中的环境
pip3 install -r requirement.txt
5.2 项目文件传输
- 使用putty安装包里面自带的pscp来将文件传输到云服务器上,在终端进入putty安装包的文件夹,运行如下命令:
pscp -P 端口号 -r 项目代码包路径 root@IP:云服务器中保存的地址
格式是:pscp -P [指定的端口号] -r 要传的文件路径 云服务器上用户名(一般是root)@公网ip:保存的地址
- 第二种方法是本地push到Gitee远程仓库,云服务器中直接在Gitee上clone下来
5.3 安装项目环境
5.3.1 安装python3.8.1
这里是因为我的本地python版本是3.8.1,为了不出现环境冲突问题一般云服务器上的环境版本选择与本地保持一致。
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-develyum install wgetwget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgzwget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz# 解压压缩包
tar -zxvf Python-3.8.1.tgz# 进入文件夹
cd Python-3.8.1# 配置安装位置
./configure prefix=/usr/local/python3# 安装
make && make install#添加python3的软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
#如果报已经存在的错误,就把-s换成-sf#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
#如果存在报错同上面一样
5.3.2 安装虚拟环境
- 首先直接进入项目的目录,执行命令安装virtualenv
pip3 install virtualenv#创建软连接:
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv#创建虚拟环境:
virtualenv -p python3 +名字
#例:virtualenv -p python3 .env
- 进入虚拟环境
source .env/bin/activate
5.3.3 安装Flask
#安装flask
pip3 install flask#安装项目拓展
pip3 install -r requirements.txt#如果报数据库连接的问题就直接
pip install mysqlclient
这样子,我们直接进入项目的路径下运行项目就可以实现flask项目在云服务器上的部署了。
5.3.4 补充虚拟环境的命令
#新建虚拟环境:
virtualenv -p python3 名字#进入虚拟环境:
source 名字/bin/activate#退出虚拟环境:deactivate
5.3.5 进程占用如何解决
首先先查看PID码:losf -i:被占用的进程端口号
然后再用kill -9 强制杀死
5.3.6 将后端程序挂在服务器后台上运行
nohup python -u server.py &
总结
写完这篇文章,小荔枝的Flask框架的内容就梳理完成啦,之后有空可能会再修改一下这一篇博客。接下来荔枝就要开始学习了,大家一起加油啦。
今朝已然成为过去,明日依然向往未来!我是小荔枝,在技术成长的路上与你相伴,码文不易,麻烦举起小爪爪点个赞吧哈哈哈。
谢谢大家的支持嘻嘻嘻~~~
比心心♥~~~