Django建站笔记(三)——部署上线

因为我是用windows开发,这个部署上线真是相当折腾orz

这里我采用了nginx+django+uwsgi的方式,系统选用了阿里云的ubuntu16.04,用到的工具有Xshell 5和Xftp 5

第一步:安装nginx

当然是先更新系统了

apt-get update

上面是错误做法orz

sudo apt-get update

这才是正确的做法,因为我们最好不要在日常工作中使用root用户(但下面我会省去sudo 233)

接下来就是安装nginx了

apt-get install nginx

在ubuntu中,nginx的目录结构如下:

配置文件:/etc/nginx下;
启动程序文件:/usr/sbin/nginx下;
日志文件:/var/log/nginx/下,分别是access.log和error.log;
此外,/etc/init.d自动生成了启动脚本nginx。

nginx的操作

sudo /etc/init.d/nginx start    # 启动
sudo /etc/init.d/nginx stop     # 停止
sudo /etc/init.d/nginx restart  # 重启
ps -ef | grep nginx             # 查看进程

第二步:配置环境

首先安装virtualenv

pip install virtualenv

然后创建一个虚拟环境

virtualenv --no-site-packages web

接着,激活虚拟环境

source web/bin/activate

退出时使用deactivate

接下来安装必要的package,然后直接copy几个我改过源码的包。

通常直接拷贝在site-packages目录中就能用,前提是这个包依赖安装好,并且本身不需要编译。

最后,copy我们的项目目录到服务器中

第三步:安装、配置uwsgi

pip install uwsgi

然后,在django项目目录下创建配置文件myproject.ini

# Django-related settings

socket = :8001

# the base directory (full path)
chdir           = /root/myproject

# Django s wsgi file
module          = blog.wsgi

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 4

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

启动uwsgi

uwsgi --ini uwsgi.ini

第四步:配置nginx

配置文件/etc/nginx/sites-enabled/default

server {
    # the port your site will be served on
    listen      8000; # 域名没备案,先用着8000端口吧
    server_name 127.0.0.1; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    location /media  {
        alias /home/ubuntu/blog/media;  # your Django project's media files - amend as required
    }

    location /static {
        alias /home/ubuntu/blog/static; # your Django project's static files - amend as required
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        include     uwsgi_params; # the uwsgi_params file you installed
        uwsgi_pass 127.0.0.1:8001;
    }
}

第五步:收集django静态、媒体文件(这一步可以事先完成)

把django自带的静态文件收集到同一个配置好的目录中,不然访问django的许多页面会找不到静态文件。

在项目目录中执行

python manage.py collectstatic

最后

启动uwsgi和nginx即可

大功告成了!

你可能感兴趣的:(Django建站笔记(三)——部署上线)