共计 4468 个字符,预计需要花费 12 分钟才能阅读完成。
部署 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 &
Nginx+uWSGI+Supervisor 在 Ubuntu 上部署 Flask 应用 http://www.linuxidc.com/Linux/2016-07/133064.htm
Flask+Nginx+uWSGI 在 Ubuntu 服务器上的配置 http://www.linuxidc.com/Linux/2016-09/135364.htm
Linux 上利用 Nginx 代理 uWSGI 处理 Flask Web 应用 http://www.linuxidc.com/Linux/2016-08/134164.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149986.htm