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

    ---------------------------------------------------------
    学如不及,犹恐失之
  • 相关阅读:
    【ACM-ICPC 2018 南京赛区网络预赛 L】Magical Girl Haze
    【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
    【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) B】Reach Median
    工作总结二
    学习总结
    快速WCF
    EF+linq的增删改查
    JAVASCRIPT闭包以及原型链
    CSS声明各个浏览器私有属性的命名前缀
    mvc的model验证,ajaxhelper,验证机制语法
  • 原文地址:https://www.cnblogs.com/noKing/p/8149817.html
Copyright © 2020-2023  润新知