django部署

 

一、前期准备工作:

  1、用pip free > requirements.txt 将当前环境的包导出到 requirements.txt文件中,方便在部署的时候安装。

  2、将项目文件上传到服务器/srv文件下面(/srv :主要用来存储本机或本服务器提供的服务或数据。用户主动生产的数据、对外提供服务

  3、使用git管理项目:(码云)

    1、git init  将当前项目根目录变成git初始化仓库;

    2、git remote add origin   xxx.git(可以使用http或ssh)

    3、git add . 添加本地代码(工作区中)

    4、git commit -m "first commit" (添加到仓库中)

    5、git pull origin master --allow-unrelated-histories(码云仓库到本地)

    6、git push origin master(本地到码云)

       4、安装

    1、sudo apt install python  sudo apt install python-pip

              2、虚拟环境安装:

                   1、pip install virtualenv

                   2、pip install virtualenvwrappe

                   3、vim ~/.bashrc进入文件中,添加以下代码:记得重新source ~/.bashrc

        export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
        # 虚拟环境存储的目录
        export WORKON_HOME=$HOME/.virtualenvs   (默认将虚拟环境放在家目录下的.virtualenvs中)
        source /usr/local/bin/virtualenvwrapper.sh

      5、在服务器上下载git(srv)

    1、进入srv创建项目文件夹;

    2、git init ->git remote add origin   xxx.git->git pull origin master ,输入用户名密码

    3、在虚拟环境下,安装第三方包,pip install  -r requirements.txt

    4、再数据库中,穿件相应的数据库;

    5、执行 python manage.py migrate

    6、在setting.py文件中设置,ALLOWED_HOSTS=['*'],DEBUG=FLASE

      (本地修改后,推送:git add .->git commit -m "first commit" -> git push origin master

      (服务器上:git pull origin master

               7、python run server 0.0.0.0:8000

    8、收集静态文件:python manage.py collectstatic,在项目中新建static_dist文件夹,setting.py中设置STATIC_ROOT=os.path.join(BASE_DIR,'static_dist')

       6、安装uwsgi及配置

    1、uwsgi是应用服务器,用pyhton编写,一是接受nginx过来的请求,二是执行django代码并返回;

               2、在系统级别中安装(deactivate退出虚拟环境),pip isntall uwsgi

               3、使用:uwsgi --http:8000 --module xxx.wsgi  --virtualenv /root/.virtualenvs/mywork

               4、配置ini(在项目目录下新建xxx_uwsgi.ini)      

[uwsgi]

# Django相关的配置
# 必须全部为绝对路径
# 项目的路径
chdir           = /srv/zhiliaoketang
# Django的wsgi文件
module          = zhiliaoketang.wsgi
# Python虚拟环境的路径
home            = /root/.virtualenvs/django-env-py2

#http:8000 # 进程相关的设置 # 主进程 master
= true # 最大数量的工作进程 processes = 10 # socket文件路径,绝对路径 socket = /srv/zhiliaoketang/zhiliaoketang.sock # 设置socket的权限 chmod-socket = 666 # 退出的时候是否清理环境 vacuum = true ``` 然后使用命令`uwsgi --ini zhiliaoketang.ini`,看下是否还能启动这个项目。

 

 

 

    5、nginx配置

upstream zhiliaoketang {
    server unix:///srv/zhiliaoketang/zhiliaoketang.sock;  #自动创建,与uwsgi文件的sock地址一样
}

# 配置服务器
server {
    # 监听的端口号
    listen      80;
    # 域名
    server_name 192.168.0.101; 
    charset     utf-8;

    # 最大的文件上传尺寸
    client_max_body_size 75M;  

    # 静态文件访问的url
    location /static {
        # 静态文件地址
        alias /srv/zhiliaoketang/static_dist; 
    }

    # 最后,发送所有非静态文件请求到django服务器
    location / {
        uwsgi_pass  zhiliaoketang;
        # uwsgi_params文件地址
        include     /etc/nginx/uwsgi_params; 
    }
}

写完配置文件后,为了测试配置文件是否设置成功,运行命令:`service nginx configtest`,如果不报错,说明成功。

每次修改完了配置文件,都要记得运行`service nginx restart`。

 
 

 

 

      

 

posted @ 2019-06-18 00:23  多一度热爱  阅读(410)  评论(2)    收藏  举报