部署Flask项目到腾讯云服务器CentOS7
部署Flask项目到腾讯云服务器CentOS7
安装git
yum install git
安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sqlite数据库:
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
安装python3.6
下载python
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz ls tar -zxvf Python-3.6.4.tgz ls
创建目录
sudo mkdir /usr/local/python3
下载编译python的c和c++:
yum install gcc gcc-c++ yum install -y openssl openssl-devel openssl-static yum groupinstall -y "Development tools"
配置:
sudo Python-3.6.4/configure --prefix=/usr/local/python3
编译:
sudo make sudo make install
备份(重命名):
sudo mv python python.bak
软连接,以后就可以用python3命令来启动python3了:
sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
修改原来2.7的配置
sudo vi /usr/bin/yum
回车后第一行的#!/usr/bin/python 改为#!/usr/bin/python2.7 然后esc,shift+: wq退出
从此以后在linux终端,输入python2即可进入2.7,输入python3即可进入python3
安装pip
下载pip
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
解压:
tar zxf pip-9.0.1.tar.gz
安装pip:
cd pip-9.0.1
python3 setup.py install
回到用户目录:
cd ~
安装ipython
pip install ipython
发现pip不好使,先找到pip在哪:
find / -name pip
再做个软链接
ln -sv /usr/local/python3/bin/pip /usr/bin/pip
输入pip试试:
pip
然后再安装ipython:
pip install ipython
安装完后看看ipython好不好使:
ipython
发现不好使...,看看ipython在什么地方
find / -name ipython
然后做一个软链接
ln -sv /usr/local/python3/bin/ipython /usr/bin/ipython
然后输入ipython试试,就好使了
ipython
进入ipython后,先来个hello world
print('hello world')
怎么退出呢?
exit()
ipython不仅可以输入python语句,还可以执行linux语句,你可以试试输入pwd来查看当前文件路径
pwd
准备连接github:生成ssh key
cd ~
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
在github上设置ssh key
网页上登陆github.com
登陆成功后进入https://github.com/settings/keys
然后点击‘添加一个新的SSH KEY’
第一行名字随便起,下面填入刚才cat ~/.ssh/id_rsa.pub后看到的内容。
我的是:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQBBAAABAQDLCGcX88+BTuWIIR/wKD2D91/mc1KRL6ErfVl2N5y5ql4eeIPpx89Jx/P1S0Nc1SsQEHEpBPyXcn85yKqkcJLqRAQQnthyARsrfCTIKZzuuPbefk/W12ujv4Lr57CNe+AdXvZCQHUBBS29gCOKOxNAYVym1D2qr1pFXaGoJy8L5PFkTKv5CmNvmhkrEyAsmLoOE7Kin2zIho5FIA/q0UcDTFd9Zv2GM9vSUdprHWtdpDlMPNCao/J9amTpYct27H5YLTSVoVMFhxYrbYx4a9ujVOdBfYSqcif1A2iKbodcam+y0yS5haPVQoNSL1434u8gKvS20j1NhlzqpNZttzyj root@VM_74_238_centos
要直接复制,不要自己修改。
网页上github进入到自己的某个项目,然后右边绿色按钮‘Clone or download’,点击后会弹出一个框,这个框的右上边有蓝色小字‘Use SSH’,点击它。然后出现一个链接,复制。
在linux终端输入:
git clone git@github.com:GoldArowana/flask_recommend.git
ls查看一下,已经下载成功
安装mysql
cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
解压:
tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
先删掉自带的mariadb
yum remove mysql-libs
按一下顺序安装,因为有依赖关系。
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
yum install libnuma*
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
不装devel的话,python的mysqlclient第三方库装不上
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
初始化数据库
mysqld --initialize
查看随机密码,最末尾冒号后面那个就是了
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数据库目录的所属用户及其所属组
chown mysql:mysql /var/lib/mysql -R
启动mysql数据库
systemctl start mysqld.service
#CentOS 6中用这句话启动mysql服务器
service mysqld start
登陆数据库
mysql -uroot -p'y20O-hwt.Bg<'
改密码:
set password=password('123456');
退出数据库
exit
重新进去
mysql -u root -p'123456'
创建一个recommend数据库,因为我项目用到了。
create database recommend;
部署Flask
先不急着运行...先把python第三方库装上。。。
pip install flask
pip install flask-sqlalchemy
pip install flask-script
pip install ConfigParser
pip install --upgrade setuptools
pip install mysqlclient
进入到项目
cd flask_recommend
用flask-script写的脚本来建数据库表
我的是:
python manage.py run_test
报了这个异常:
SyntaxError: Non-ASCII character '\xe9' in file manage.py on line 3,
解决办法:
第一行加这句注释
# -*- coding: UTF-8 -*-
或者把idea生成的头模板删掉@author:username什么的
开始启动
python3 runserver.py
注意runserver里是这样的
app.run(host='0.0.0.0', port=80, threaded=True)
查看进程和端口
用xshell新开一个会话,连接到同一个服务器。
netstat -anp|grep 80
可以查到80端口的占用情况
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17628/python3
ps -aux
查看所有进程,其中就有runserver
root 17628 0.0 3.5 689808 36556 pts/1 S+ 13:15 0:00 python3 runserver.py
在后台运行
nohup python3 runserver.py > python.log3 2>&1 &
参考https://www.cnblogs.com/master-pokemon/p/5790783.html
部署Flask项目到腾讯云服务器CentOS7的更多相关文章
- Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的项目到腾讯云服务器
写在前面 因为前面有写过一篇关于豆瓣的top250的电影的可视化展示项目,你可以移步http://blog.csdn.net/liuge36/article/details/78607955了解这个项 ...
- 【重学Node.js 第5篇】部署项目到腾讯云服务器
课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://github.com/hellozhangran ...
- 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...
- 部署SpringBoot项目jar包到云服务器
前言 做安卓开发也有三四年了,但是对网络这块什么http.tcp/ip之类的一直不理解.并且想自己做一些小项目练练手的时候,数据库直接存在apk里总不是滋味,所以这次站在安卓开发的角度尝试着做一做简单 ...
- 基于serverless快速部署前端项目到腾讯云
腾讯云 COS 组件,可以快速部署静态网站页面到对象存储 COS 中,并生成域名供访问. 安装 首先要安装 serverless 组件 npm install -g serverless 在项目的根目 ...
- 腾讯云服务器centos7.2+nginx(开启gzip压缩)+uwsgi+Django+react
因为项目原因,学习了react,Django,完成react开发项目过后,打包(做好了代码分割.压缩)放入Django中,在本地运行速度很快,结果放到服务器中,虽然某些js文件很小(只有一百多kb), ...
- 怎样将本地web数据库项目部署到腾讯云服务器上?
怎样将本地web数据库项目 部署到腾讯云服务器上? 1.本地计算机的工作: 1.1用eclipse或者myeclipse做好一个web项目,可以只做一个数据库的增删改查,本地部署到Tomcat服务器, ...
- 怎样将本地web项目部署到腾讯云服务器上?
怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然后在webcontent下新建一个index.html,然后在本地部署到Tomcat服 ...
- 腾讯云服务器部署 django项目整个流程
CentOS7下部署Django项目详细操作步骤 前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本, 接下来我们来看整个配置项目流程. 部署是基于:ce ...
随机推荐
- a标签文字选中后的颜色样式更改
::selection 选择器,选择被用户选取的元素部分.是css3的用法,讲真,我觉得这个东西没必要特地去写.因为选中样式默认的会根据你的背景颜色还有字体color来设置颜色 这是我默认的样式
- numpy 实践记录
reshape是从低维度到高维度.max,sum等函数都是注意axis,不选择就是全体计算. swapaxes 转换轴,将两个选择的轴对调,在CNN中X乘W有的时候需要拉伸,如果轴不同结果不对. 看p ...
- 如何获取Linux-gate.so.1动态库
前面"Linux应用程序Helloworld入门"已经提到在Linux下每个可执行文件都依赖于几个最为基本的动态库,其中一个就是linux-gate.so.1. 从上面ldd给出的 ...
- visualSFM的使用方法
VisualSFM是Changchang Wu编写的使用 Structure from Motion (SfM)进行3D重建的交互界面,具体内容详见http://ccwu.me/vsfm/.本人电脑环 ...
- freemarker之list
freemarker之list 1.设置数据源 /** * * @Title:student * @Description: * @param:@param name * @return: void ...
- axure 7.0 注册码
Axure RP 7.0注册码: 用户名:axureuser 序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6IyPD6lK7G6+tqEV4LG ...
- C#中的匿名函数使用,类名<T>
C#中有个叫做"泛型"的集合,就是说只是个外壳,到底是int,string,bool还是什么类型,都可以按照自己的要求进行定义集合,所以我们用个"T"表示. 请 ...
- 采用Global.asax的Application_BeginRequest事件过滤敏感字符
1.特殊字符过滤公共类ProcessRequest.cs using System.Web.UI; using System.Web.UI.WebControls; using System.Web. ...
- hdu5893 List wants to travel
裸的树链剖分加线段树区间修改 区间合并时需要多注意一点 当时写的很慢 理解不深刻 #include<bits/stdc++.h> using namespace std; const in ...
- Python中进程
程序 程序:编写完的代码称为程序. 进程 进程:又称重量级进程,正在执行中的程序称为进程.进程的执行会占用内存等资源.多个进程同时执行时,每个进程的执行都需要由操作系统按一定的算法(RR调度.优先数调 ...