部署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 & |
---|