Django建站筆記(三)——部署上線

因為我是用windows開發(fā),這個部署上線真是相當(dāng)折騰orz

這里我采用了nginx+django+uwsgi的方式,系統(tǒng)選用了阿里云的ubuntu16.04,用到的工具有Xshell 5和Xftp 5

第一步:安裝nginx

當(dāng)然是先更新系統(tǒng)了

apt-get update

上面是錯誤做法orz

sudo apt-get update

這才是正確的做法,因為我們最好不要在日常工作中使用root用戶(但下面我會省去sudo 233)

接下來就是安裝nginx了

apt-get install nginx

在ubuntu中,nginx的目錄結(jié)構(gòu)如下:

配置文件:/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             # 查看進(jìn)程

第二步:配置環(huán)境

首先安裝virtualenv

pip install virtualenv

然后創(chuàng)建一個虛擬環(huán)境

virtualenv --no-site-packages web

接著,激活虛擬環(huán)境

source web/bin/activate

退出時使用deactivate

接下來安裝必要的package,然后直接copy幾個我改過源碼的包。

通常直接拷貝在site-packages目錄中就能用,前提是這個包依賴安裝好,并且本身不需要編譯。

最后,copy我們的項目目錄到服務(wù)器中

第三步:安裝、配置uwsgi

pip install uwsgi

然后,在django項目目錄下創(chuàng)建配置文件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靜態(tài)、媒體文件(這一步可以事先完成)

把django自帶的靜態(tài)文件收集到同一個配置好的目錄中,不然訪問django的許多頁面會找不到靜態(tài)文件。

在項目目錄中執(zhí)行

python manage.py collectstatic

最后

啟動uwsgi和nginx即可

大功告成了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容