欢迎光临
我们一直在努力

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目


网络上关于flask部署centos的教程有挺多,不过也很杂乱。

在我第一次将flask上传到centos服务中遇到了不少问题,也费了挺大的劲。

在参考了一些教程,并综合了几个教程之后才将flask项目部署好。

所以我想把这一过程记录详细地下来,也方便零基础新手们参考。

一般来说,将本文的全部过程执行下来,就可以成功地部署好flask了。

 


我入手的服务器是

阿里云的轻量应用服务器,系统是Centos 7.3.

使用的相关软件是

PuTTY(用于远程连接到服务器),

PSFTP(用于将本地文件上传至服务器),

Navicat for mysql(数据库可视化工具)。

 

有一些小细节。

1.如果要用软件远程连接到阿里云的服务器,需要先在阿里云的控制台,为服务器重置一个密码。

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

2.远程连接服务器,输入密码的时候是不会显示的。

输入完成后直接回车就行了。

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

 

3.最好了解一些最基本Linux的命令 例如 

cd,pwd,kill,ls, mkdir...


1.1安装Python3.6

首先安装依赖包

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,我下载的是Python3.6.2

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

#其他版本地址:https://www.python.org/ftp/python/

如果速度不够快,可以直接去官网下载,利用WinSCP等软件传到服务器上指定位置,我的存放目录是/usr/local/python3,使用命令:

mkdir /usr/local/python3 

建立一个空文件夹

然后解压压缩包,进入该目录,安装Python3

tar -xvJf Python-3.6.2.tar.xz

cd Python-3.6.2

./configure --prefix=/usr/local/python3

make && make install

安装完后会提示安装好了pip等工具.

出现“successfully installed”等字样。

到此为止,Python3.6已经安装好了,

由于centos7 中自带的python的版本是python2.

而现在很多包只支持python3 ,所以我们要安装虚拟环境,在虚拟环境中的python版本是3.6

然后我们要安装virtualenv(python环境隔离工具)。

 

之后我们的flask的部署以及python包的下载都要在这个虚拟环境中进行!

每次重新远程连接centos的时候都要记得进去虚拟环境后再操作。

 

1.2 安装virtualenv

 

pip install virtualenv


建立python3独立环境
virtualenv  -p /usr/local/python3/bin/python3.6 /py3env

进去python3独立环境
source /py3env/bin/activate

 

成功进入独立环境后是这样的。

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

 

最后 我们再输入 

python -V

来验证一下python的版本

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

到此为止 python3的安装以及独立环境的安装完成了

 

参考链接

1.https://blog.csdn.net/jon_me/article/details/49618619

2.http://www.cnblogs.com/mqxs/p/8692870.html


 2.搭建LNMP环境(Mysql,Nginx,Php)

参考:https://blog.csdn.net/wszll_alex/article/details/76285324

我只执行了这个博主的文章中的

2.安装软件

5.启动服务

就行了

有一个注意的地方,这个博主的文章中有一个错误的地方,

 

在安装Mysql时,

mysql > update user set password=password(‘123456‘) where user=‘root‘;
这个语句是错误的
应该是
mysql > update user set password=password('123456') where user='root';

123456就是mysql的密码
这个密码随便设置,别忘记了就好,(忘记了挺麻烦的)

 


 

 3.上传flask项目文件至服务器

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

X.X.X.X处用服务器的公网ip地址代替
例如我的服务器的公网IP地址是XXX.XX.XX.XXX

open X.X.X.X

 然后输入账号密码,就成功的连接到服务器上了。

 

假如我的flask项目在本地的地址为 C:\Users\73876\blog

我想将这个项目整个上传至服务器上的 /usr/local/python3/bin/

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

在FSFTP中输入

cd /usr/local/python3/bin/ ("cd" 在服务器上的切换文件夹位置) lcd C:\Users\73876\blog
(“lcd” 在本地电脑上的切换文件夹位置)

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

切换好位置后分别将manage.py

requirements.txt

以及app文件夹上传

put manage.py put requirements.txt put -r app

然后我们进入服务器的文件夹查看这2个文件和1个文件夹是否上传好

(有点凌乱,没有事先建立一个文件夹来放flask项目)

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

 


 

4.安装Python包

cd /usr/local/python3/bin

yum install mysql-devel gcc gcc-devel python-devel

pip install -r requirements.txt

至于如何生成requirements.txt请百度or谷歌


5.调试Mysql脚本文件

在服务器上重新建数据库,建表,会比较麻烦,而且有时候mysql在本地的电脑上已经存在部分数据。

所以比较快捷的方法就是在本地的数据库上导出sql脚本文件,然后将这个脚本文件上传到服务器,运行就好了。

运行之后,整个数据库就能搬到服务器上了

我是使用Navicat for Mysql来导出sql文件

右键blog 转储sql文件

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

得到blog.sql文件后将文件上传到服务器,如同上述步骤一样。

 

假如blog.sql文件的位置是 /usr/local/python3/bin/blog.sql

 

首先进入mysql

mysql -u root -p 
输入密码 在Centos下里面的是首先要新建一个和文件相同名字的数据库。 mysql
>create database blog; 然后输入指令: mysql> use blog; mysql>source /usr/local/python3/bin/blog.sql;
mysql>exit;

然后就OK了。

 

参考:

https://www.cnblogs.com/walblog/articles/7890442.html


 

6.安装 gunicorn

 

pip install gunicorn

 

7.运行flask项目

gunicorn -w 3 -b x.x.x.x:8000 manage:app

注意把x.x.x.x替换成内网ip地址

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

大功告成啦!

外网想要访问你的flask网站

只要通过公网的IP地址就行了

X.X.X.X:8000

 

如果要停止这个程序的运行

ps -aux | grep gunicorn
查看进程
然后
kill掉这3个进程就好了

 

 

如果重新连接服务器,记得要进入独立环境后再操作!

source /py3env/bin/activate


以上~

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目》
文章链接:https://www.456zj.com/4837.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址