• 20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器


    1.项目准备

    1.在settings.py中

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    # STATICFILES_DIRS = (
    #     os.path.join(BASE_DIR, 'static'),
    # )
    DEBUG = False
    
    ALLOWED_HOSTS = ["*"]

    2.生成requirements.txt

    pip freeze >requirements.txt

     3.将项目打包成.zip包

    2.上传项目包

    1.使用FileZilla连接腾讯云服务器,并上传NewCenter.zip包

     3.在云服务器解压zip包

    1.使用Xshell连接服务器

    clear清屏

     2.解压zip包

    sudo -i
    cd /home/ubuntu
    ls
    unzip NewCenter.zip

     4.创建虚拟环境

    1.查看当前系统下python3的版本

    python3 -V
    #当前环境下python3是python3.6.8

    2.创建虚拟环境

     在ubuntu目录下做这些操作

    #安装虚拟环境
    apt-get install python3-venv
    y
    #在当前目录下,创建一个python3.6的虚拟环境,取名为env36
    python3 -m venv env36
    . env36/bin/activate
    #进入虚拟环境
    #退出虚拟环境 deactivate

    3.在虚拟环境中安装依赖库

    ls
    cd NewCenter
    pip3 install -r requirements.txt

    5.测试并收集静态文件

    1.运行项目:

    python manage.py runserver 0.0.0.0:8000

    bug:

    报错了

    原因:

    因为Mysql数据库新建的时候,所有大写字母都变成了小写,但是在项目配置文件中,数据库的名字中还是用的大写字母,而在ubuntu系统中,是区分大小写的,导致在连接数据库时报错。

    这种情况下,在构建项目数据库的时候,就用了小写字母的情况下,是不会出现报错的。

    所以只要将项目配置中与连接数据库相关的配置代码中的NewCenter,改成newcenter,即可。

    解决:

    Ctrl+C,退出。

    ls
    cd NewCenter/
    ls

    vim settings.py
    # 英文输入环境下,敲 i 键,进入插入模式
    #上下左右键移动光标,将连接数据库相关的代码中的‘NewCenter’修改为‘newcenter’
    #英文输入环境下,敲Esc键,输入:wq 保存退出

     然后再重新启动项目:

    cd /home/ubuntu
    cd NewCenter
    python manage.py runserver 0.0.0.0:8000

    2.在安全组打开8000端口

    3.浏览器访问:

    http://公网IP:8000/xadmin/

    浏览器效果图:

     4.退出运行状态:

    Ctrl键+C键

    5.收集静态文件:

    python manage.py collectstatic

    注意,虽然收集了静态文件,但是这个时候,就算重启项目,从浏览器访问,依然是没有样式的。

    6.安装uwsgi

    1.安装uwsgi到真实(非虚拟环境)环境下

    #退出虚拟环境
    deactivate
    cd ..
    apt install python3-pip
    y
    apt-get install -y python3-dev
    pip3 install uwsgi

    2.使用uwsgi启动项目

    uwsgi --chdir /home/ubuntu/NewCenter --home /home/ubuntu/env36 --http :8000 --module NewCenter.wsgi

     浏览器访问:

    http://公网IP:8000/xadmin/

    3.退出运行状态

    Ctrl键+C键

    4.通过uwsgi通过ini执行运行项目

    1.创建ini文件

    cd NewCenter/
    mkdir newcenter_uwsgi
    cd newcenter_uwsgi/
    vim newcenter.ini

    在英文输入下点击i键进入输入状态,输入:

    [uwsgi]
    #项目目录
    chdir=/home/ubuntu/NewCenter
    #wsgi目录
    module=NewCenter.wsgi:application
    #虚拟环境
    home=/home/ubuntu/env36
    master=true
    processes=1
    socket = 0.0.0.0:9000
    vacuum = True
    daemonize=yes

     点击【Esc】键,输入:wq,保存退出

    2.通过执行ini文件启动项目命令

    uwsgi --ini /home/ubuntu/NewCenter/newcenter_uwsgi/newcenter.ini

    注意:这里所谓的启动,通过浏览器是访问不到的。

    7.安装配置Nginx

    1.安装Nginx

    cd /home/ubuntu/
    apt-get install nginx
    y

    2.配置Nginx

    1.删除default:

    #防止错误,先把default文件给删除了
    cd /etc/nginx/sites-available/
    rm default 
    ls
    cd /etc/nginx/sites-enabled
    ls
    rm default 
    ls

    2.新建配置文件:

    cd /etc/nginx/sites-available/
    vim newcenter.conf

    3.编辑内容:

    i #进入编辑状态

    内容

    server{
      listen 8000;
      server_name 公网IP;
      charset utf-8;
    
      client_max_body_size 75M;
    
      location /static {
        alias /home/ubuntu/NewCenter/static;
      }
      location /media {
        alias /home/ubuntu/NewCenter/media;
      }
    
      location / {
        uwsgi_pass 127.0.0.1:9000;
        include /etc/nginx/uwsgi_params;
      }
    }

    保存退出:

    Esc键+输入:wq+回车 #保存退出

    4.建立软链接

    cd /etc/nginx/
    ln -s /etc/nginx/sites-available/newcenter.conf /etc/nginx/sites-enabled/newcenter.conf
    ls sites-enabled/
    nginx -t #查看Nginx 运行情况
    
    service nginx restart #重启Nginx
     

    注意 如果报错:

    Job for nginx.service failed because the control process exited with error code.
    See "systemctl status nginx.service" and "journalctl -xe" for details.

    查看端口8000是否占用:

    netstat -apn|grep :8000

    查看与uwsgi相关进程

    ps -aux|grep uwsgi

    停止uwsgi

    sudo pkill -f uwsgi -9

     5.通过nginx反向代理访问

    1.解决权限问题:

    chmod -R 777 /home/ubuntu

    2.如果因为报错停止过uwsgi,则需要再启动一次

    uwsgi --ini /home/ubuntu/NewCenter/newcenter_uwsgi/newcenter.ini

    3.重启nginx

    nginx -t #查看Nginx 运行情况
    
    service nginx restart #重启Nginx

    浏览器访问:

    http://公网IP:8000/xadmin/

    效果图:

    后端项目NewCenter部署成功!

  • 相关阅读:
    ASP.NET 2.0 中的新增服务、控件与功能概述作者:Jeff Prosise
    js学习笔记(二)
    js学习笔记(四)表达式和运算符
    js技巧1(判断浏览器)
    css点滴
    after effect 学习笔记(一)
    js学习笔记(六)函数
    js学习笔记(八)数组
    js学习笔记(三)变量
    js学习笔记(一)
  • 原文地址:https://www.cnblogs.com/xuepangzi/p/13231361.html
Copyright © 2020-2023  润新知