Django 部署原来可以这样操作

下面为大家详细讲解一下部署上线的操作,首先我们实现本地部署 然后在上传到腾讯云服务器, 当然你也可以使用别的服务器.

本地部署

部署前需要关闭调试,允许任何机器访问,我们需要在settings.py设置:

  •  DEBUG = False
     ALLOW_HOSTS=['*']
    

1)安装uWSGI

uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器。uWSGI代码完全用C编写,效率高、性能稳定。

  •  pip install uwsgi
    

2)配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下:

[uwsgi]
# Django-related settings
http = 127.0.0.1:8000
#socket = 127.0.0.1:8000
#项目路径
chdir           = /Users/tian/Desktop/1807projects/项目名
module          = MyBlog.wsgi
master          = true
processes       = 4
threads = 2
daemonize       = uwsgi.log
pidfile = uwsgi.pid
#虚拟环境
virtualenv = /Users/tian/.virtualenvs/虚拟环境名

收集静态资源

#在settings.py中放入下面设置
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
# 在项目路径下执行下面命令收集资源
python3 manage.py collectstatic

配置完可以启动uWSGI

uwsgi 使用命令

启动: uwsgi --ini uwsgi.ini
查看: ps -aux|grep uwsgi
停止: uwsgi --stop uwsgi.pid

  • 注意每次修改项目内容都需要重启uWSGI

安装nginx 默认路径/etc/nginx

sudo apt install nginx

cd /etc/nginx 进入nginx目录编辑nginx.cong
写到http括号下

http{
    .......
    server {
              listen 80;
            # 需要服务器地址
              server_name 127.0.0.1;
 
              #动态请求
              location / {
                  include uwsgi_params;
                # 需要修改
                  uwsgi_pass 127.0.0.1:8000;
              }
              #静态
             location /static {
                #需要修改静态路径
                alias /Users/tian/Desktop/py_projects/MyBlog/static ;
     
              }
        }  
}

配置完可以启动nginx

nginx 使用命令

/etc/init.d/nginx start 启动

/etc/init.d/nginx stop 或killall -9 nginx 关闭

/etc/init.d/nginx restart 重启    

在浏览器中输入网址 http://127.0.0.1:8080/

服务器

登录腾讯云服务器,选中你的服务器修改密码重启, 进入服务器部署

一, 首先打开终端远程登录服务器: ssh ubuntu@服务器公网ip 输入密码
二, 执行下面两条命令 sudo apt update 和 sudo apt upgrade (一直回车就行)
三, 安装pip sudo apt install python3-pip
四, 安装虚拟环境 sudo pip3 install virtualenv

可能会出错,下面为大家提供一个解决办法,在终端使用下面的命令:
export LC_ALL=C

五, sudo pip3 install virtualenvwrapper
六, 配置虚拟环境

vi .bashrc

    复制这三条命令到.bashrc
    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source /usr/local/bin/virtualenvwrapper.sh

    激活
    source .bashrc
七, 创建虚拟环境 mkvirturalenv 名称
八, 安装数据库 sudo apt-get install mysql-server mysql-client
九, (本地):导出本地数据库 mysqldump -uroot -p 数据库名 > /Users/tian/Desktop/blog.sql
十, (本地进入项目目录):导出本地依赖第三方 pip freeze > requirements.txt
十一, 把数据库,依赖文件和源码上传到服务器,可以使用git,ftp,scp 我使用的是scp
  • scp blog.sql -r ubuntu@94..90. /home/ubuntu
  • scp blog.sql -r ubuntu@94..90.:/home/ubuntu
  • scp freeze.txt -r ubuntu@94..90.:/home/ubuntu
十二, 进入mysql创建一个和本地数据库名字一样的数据库,并导入数据
  • mysql -u root -p 回车 输入密码
  • create database 数据库名 charset=utf8;
  • source /home/ubuntu/blog.sql
十三, 安装nginx和uwsgi
  • sudo apt-get install nginx
uwsgi需要切换到环境下安装
  • workon 名称 (此处输入在第七步创建的环境名称)
  • pip install uwsgi
十四, 配置nginx和uwsgi, 这一步和上面配置本地部署一样,请参考上面
启动uwsgi 
        uwsgi --ini uwsgi.ini 启动
        uwsgi --stop uwsgi.pid 关闭

启动nginx

        /etc/init.d/nginx start 启动

        /etc/init.d/nginx stop 或killall -9 nginx 关闭

        /etc/init.d/nginx restart 重启
十五, 联网下在本地访问你的云端服务器公网ip

你可能感兴趣的:(Django 部署原来可以这样操作)