专栏首页上云知识部署Flask项目到腾讯云服务器CentOS7
原创

部署Flask项目到腾讯云服务器CentOS7

部署Flask项目到腾讯云服务器CentOS7

安装git

1

yum install git

安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sqlite数据库:

1

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

安装python3.6

下载python

1234567

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz ls tar -zxvf Python-3.6.4.tgz ls

创建目录

1

sudo mkdir /usr/local/python3

下载编译python的c和c++:

12345

yum install gcc gcc-c++ yum install -y openssl openssl-devel openssl-static yum groupinstall -y "Development tools"

配置:

1

sudo Python-3.6.4/configure --prefix=/usr/local/python3

编译:

123

sudo make sudo make install

备份(重命名):

1

sudo mv python python.bak

软连接,以后就可以用python3命令来启动python3了:

1

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3

修改原来2.7的配置

1

sudo vi /usr/bin/yum

回车后第一行的#!/usr/bin/python 改为#!/usr/bin/python2.7 然后esc,shift+: wq退出

从此以后在linux终端,输入python2即可进入2.7,输入python3即可进入python3

安装pip

下载pip

1

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

解压:

1

tar zxf pip-9.0.1.tar.gz

安装pip:

12

cd pip-9.0.1python3 setup.py install

回到用户目录:

1

cd ~

安装ipython

1

pip install ipython

发现pip不好使,先找到pip在哪:

1

find / -name pip

再做个软链接

1

ln -sv /usr/local/python3/bin/pip /usr/bin/pip

输入pip试试:

1

pip

然后再安装ipython:

1

pip install ipython

安装完后看看ipython好不好使:

1

ipython

发现不好使...,看看ipython在什么地方

1

find / -name ipython

然后做一个软链接

1

ln -sv /usr/local/python3/bin/ipython /usr/bin/ipython

然后输入ipython试试,就好使了

1

ipython

进入ipython后,先来个hello world

1

print('hello world')

怎么退出呢?

1

exit()

ipython不仅可以输入python语句,还可以执行linux语句,你可以试试输入pwd来查看当前文件路径

1

pwd

准备连接github:生成ssh key

123

cd ~ssh-keygen -t rsacat ~/.ssh/id_rsa.pub

在github上设置ssh key

网页上登陆github.com 登陆成功后进入https://github.com/settings/keys 然后点击‘添加一个新的SSH KEY’ 第一行名字随便起,下面填入刚才cat ~/.ssh/id_rsa.pub后看到的内容。 我的是:

1

ssh-rsa AAAAB3NzaC1yc2EAAAADAQBBAAABAQDLCGcX88+BTuWIIR/wKD2D91/mc1KRL6ErfVl2N5y5ql4eeIPpx89Jx/P1S0Nc1SsQEHEpBPyXcn85yKqkcJLqRAQQnthyARsrfCTIKZzuuPbefk/W12ujv4Lr57CNe+AdXvZCQHUBBS29gCOKOxNAYVym1D2qr1pFXaGoJy8L5PFkTKv5CmNvmhkrEyAsmLoOE7Kin2zIho5FIA/q0UcDTFd9Zv2GM9vSUdprHWtdpDlMPNCao/J9amTpYct27H5YLTSVoVMFhxYrbYx4a9ujVOdBfYSqcif1A2iKbodcam+y0yS5haPVQoNSL1434u8gKvS20j1NhlzqpNZttzyj root@VM_74_238_centos

要直接复制,不要自己修改。

网页上github进入到自己的某个项目,然后右边绿色按钮‘Clone or download’,点击后会弹出一个框,这个框的右上边有蓝色小字‘Use SSH’,点击它。然后出现一个链接,复制。

在linux终端输入:

1

git clone git@github.com:GoldArowana/flask_recommend.git

ls查看一下,已经下载成功

安装mysql

12

cd ~wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

解压:

1

tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

先删掉自带的mariadb

1

yum remove mysql-libs

按一下顺序安装,因为有依赖关系。

12345

rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpmyum install libnuma*rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm

不装devel的话,python的mysqlclient第三方库装不上

1

rpm -ivh mysql-community-devel-5.7.20-1.el7.x86_64.rpm

装server前要装libnuma,不然会报错 error: Failed dependencies: libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.20-1.el7.x86_64 libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.20-1.el7.x86_64 libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.20-1.el7.x86_64 初始化数据库

1

mysqld --initialize

查看随机密码,最末尾冒号后面那个就是了

1

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

2017-12-30T04:47:32.874673Z 1 [Note] A temporary password is generated for root@localhost: y20O-hwt.Bg<

更改mysql数据库目录的所属用户及其所属组

1

chown mysql:mysql /var/lib/mysql -R

启动mysql数据库

1

systemctl start mysqld.service

#CentOS 6中用这句话启动mysql服务器

1

service mysqld start

登陆数据库

1

mysql -uroot -p'y20O-hwt.Bg<'

改密码:

1

set password=password('123456');

退出数据库

1

exit

重新进去

1

mysql -u root -p'123456'

创建一个recommend数据库,因为我项目用到了。

1

create database recommend;

部署Flask

先不急着运行...先把python第三方库装上。。。

123456

pip install flaskpip install flask-sqlalchemypip install flask-scriptpip install ConfigParserpip install --upgrade setuptoolspip install mysqlclient

进入到项目

1

cd flask_recommend

用flask-script写的脚本来建数据库表 我的是:

1

python manage.py run_test

报了这个异常: SyntaxError: Non-ASCII character '\xe9' in file manage.py on line 3,

解决办法: 第一行加这句注释

1

# -*- coding: UTF-8 -*-

或者把idea生成的头模板删掉@author:username什么的

开始启动

1

python3 runserver.py

注意runserver里是这样的

1

app.run(host='0.0.0.0', port=80, threaded=True)

查看进程和端口

用xshell新开一个会话,连接到同一个服务器。

1

netstat -anp|grep 80

可以查到80端口的占用情况 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17628/python3

1

ps -aux

查看所有进程,其中就有runserver root 17628 0.0 3.5 689808 36556 pts/1 S+ 13:15 0:00 python3 runserver.py

在后台运行

1

nohup python3 runserver.py > python.log3 2>&1 &

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

相关文章

  • 【OCP最新题库解析(052)--题40】Your database is open in ARCHIVELOG mode

    注:OCP-052最新题库完整详细解答版请联系小麦苗私聊。解题不易,请大家尊重原创。

    小麦苗DBA宝典
  • 像数据科学家一样思考:12步指南(下)

    我们的数据科学过程的第6步是数据的统计分析。统计方法通常被认为是做好数据科学所需技能和知识的近一半,或至少三分之一。另一个较大的部分是软件开发和/或应用程序,其...

    AiTechYun
  • 用扑克牌演示 Python 数据分析

    扑克牌是我们常见一种娱乐工具,玩法千变万化,为了提高学习 Python 知识的趣味性,我构建了一个扑克牌的数据框,将用它来演示一些 Python 数据分析的功能...

    张俊红
  • Airflow自定义插件, 使用datax抽数

    Airflow之所以受欢迎的一个重要因素就是它的插件机制。Python成熟类库可以很方便的引入各种插件。在我们实际工作中,必然会遇到官方的一些插件不足够满足需求...

    Ryan-Miao
  • Python可视化库Matplotlib绘图入门详解

    Matplotlib是Python的绘图库,其中的pyplot包封装了很多画图的函数。

    代码医生工作室
  • Python 为什么要保留显式的 self ?

    布鲁斯·埃克尔(Bruce Eckel)发了篇博文[1],提议从类方法的形参列表中删除“self”。我将解释为什么这个提议不能通过。(译注:Bruce 是《Th...

    Python猫
  • 深度剖析为什么 Python 中整型不会溢出?

    花下猫语:前不久,我应读者提问而写了一篇《Python 的整数与 Numpy 的数据溢出》,简要介绍过 Python 中的整数表示法与数据溢出问题。那篇文章的猎...

    Python猫
  • 即学即用的30段Python实用代码

    Python是目前最流行的语言之一,它在数据科学、机器学习、web开发、脚本编写、自动化方面被许多人广泛使用。它的简单和易用性造就了它如此流行的原因。

    用户2769421
  • 如何利用Python学习linux命令?

    看过这篇《2000字谏言,给那些想学Python的人,建议收藏后细看!》(http://mp.weixin.qq.com/s?__biz=Mzg4ODE1MjU...

    猴哥yuri
  • 10分钟搭建你的第一个图像识别模型 | 附完整代码

    【导读】本文介绍了图像识别的深度学习模型的建立过程,通过陈述实际比赛的问题、介绍模型框架和展示解决方案代码,为初学者提供了解决图像识别问题的基础框架。

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券