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

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

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

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

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


我入手的服务器是

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

使用的相关软件是

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

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

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

有一些小细节。

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

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

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

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

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

 

最后 我们再输入

python -V

来验证一下python的版本

  

到此为止 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(‘‘) where user=‘root‘;
这个语句是错误的
应该是
mysql > update user set password=password('123456') where user='root';

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

3.上传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/

在FSFTP中输入

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

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

requirements.txt

以及app文件夹上传

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

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

(有点凌乱,没有事先建立一个文件夹来放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文件

得到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  -b x.x.x.x: manage:app

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

大功告成啦!

外网想要访问你的flask网站

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

X.X.X.X:8000

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

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

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

source /py3env/bin/activate

以上~

[傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目的更多相关文章

  1. 阿里云服务器Centos上Apache安装SSL证书配置Https

    首先我们先去阿里云申请一个免费的SSL证书(https://common-buy.aliyun.com/?spm=5176.7968328.1266638..5e971232BzMSp5&co ...

  2. 【Centos】【Python】【Flask】阿里云上部署一个 flask 项目

    1. 安装 python3 和 pip3 参考:http://www.cnblogs.com/mqxs/p/8692870.html 2.安装 lnmpa 集成开发环境 参考:http://www.c ...

  3. 阿里云服务器ECS上ubuntu安装nginx后默认站点页面打开错误,显示无法访问此网站

    问题:在新买的阿里云服务器ECS上安装nginx后打开默认页面失败,如下图所示. 系统环境:Ubuntu 16.04.4 LTS64版本. 步骤回顾: root用户下运行命令 apt-get inst ...

  4. 阿里云服务器centos下安装配置svn服务器

      阿里云服务器centos下安装配置svn服务器 1.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端中间会提示是否ok,输入y,确认安装成功提 ...

  5. 阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL)

    一.快速安装Apache+PHP5+MySql ----------------------------------------------------- 补充:由于163的yum源上只有php5.1 ...

  6. 【史上最全】申请配置阿里云服务器,并部署IIS和开发环境,项目上线经验

    最近一年在实验室做web后端开发,涉及到一些和服务器搭建及部署上线项目的相关经验,写个帖子和小伙伴们分享,一同进步! 首先谈一下,为什么越来越多中小型公司/实验室,部署项目的趋势都是在云服务器而不是普 ...

  7. 阿里云服务器 centos 7 安装postgresql 11

    Postgresql简介 官方网站:https://www.postgresql.org/ 简介参考zhihu文章 https://www.zhihu.com/question/20010554 关于 ...

  8. 【Linux 操作系统】阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 博客总结 : 设置SecureCRT ...

  9. 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客

    前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...

随机推荐

  1. 使用mint ui 的picker解决城市三级联动

    <mt-popup v-model="popupVisible" position="bottom"> <div class="po ...

  2. EditText inputType类型整理

    //文本类型,多为大写.小写和数字符号.     android:inputType="none"//输入普通字符    android:inputType="text& ...

  3. 第六次java实验报告

    Java实验报告 班级 计科二班 学号20188437 姓名 何磊 完成时间 2019/10/17 评分等级 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法 ...

  4. windows terminal编译实录

    直接甩个大佬链接吧 https://www.bilibili.com/video/av52032233?t=835 安装过程中如果出问题了,靠搜索引擎解决下,微软或者vs的问题可以用biying搜索 ...

  5. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 将文本文件(csv)数据导进数据库

    第二节 将文本文件数据导进数据库 该小节介绍如何用BIML生成ssis包,将货币文本导入到数据库currency的表中. SSIS组件: Connection Manager组建管理connectio ...

  6. QVector与QMap查找效率实战(QMap快N倍,因为QVector是数组,QMap是有序二叉树,查找的时候是N和LogN的速度对比)

    因为项目使用QVector,太慢了,听说QMap比QVector查找时快,所以写一个小程序试试: 从30000个数据中找5000个 程序运行截图如下: QVector QMap 一样的数据,找一样的数 ...

  7. leetcode题库

    leetcode题库 #题名题解通过率难度出现频率  1 两数之和     46.5%简单2 两数相加     35.5%中等3 无重复字符的最长子串     31.1%中等4 寻找两个有序数组的中位 ...

  8. python+minicap(二)

    一.push文件至手机中 minicap 的使用有很强的针对性,针对不同架构的CPU和SDK制作了不同的 "minicap" 和 "minicap.so" 文件 ...

  9. MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)

     一.什么是索引? 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息. 二.索引的作用? 索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提 ...

  10. Windows访问VirtualBox的Redis服务器

    一般来讲,我们不愿意在Windows上面安装太多的软件,这样会导致Windows运行太慢. 所以我在windows上面安装了VirtualBox,然后把相关的软件都安装在virtualBox里面,比如 ...