基於Ubuntu16.04的django+uwsgi+nginx安裝部署

小醋僧的boy發表於2018-10-30

最近由於導師的一點破事,我一個從來沒有搞過後臺的人來搞後臺,由於只會用python,所以沒得選,只能由題目的套裝。這三個東西的網上教程坑非常之多。我們一步一步來。

首先是一臺無瑕,沒有被玷汙過的新機子。

一、安裝虛擬環境

別問為啥要裝,裝就完事了,ubuntu裡面預設的是py2,現在一般都是py3了,按步驟來
安裝python3-venv
apt-get install python3-venv

接下來cd到你想去的目錄下建立虛擬環境ven(名字比較隨意)

python3 -m venv ven
ven/bin中的python是3.5的
接下來啟用虛擬環境,cd到ven/bin目錄下
source activate
接下來你會看到你命令列的前面有個(ven),這就是啟用啦。
退出虛擬環境也得cd到ven/bin目錄下
source deactivate

二、安裝django

這個簡單哈
pip install django

注意要在虛擬環境下這麼幹

三、安裝uwsgi

安裝這個需要先裝一下其他工具

sudo apt-get install python3-setuptools
sudo apt-get install python3-dev
pip install uwsgi

注意:按照這個時候,其餘的教程就會讓你測試了,其實這個測試容易出很多的問題,我推薦先不要急著測試,只要pip install uwsgi沒有出現問題就暫時不要管這個

四、安裝nginx

先更新一下哈
sudo apt-get update

再安裝nginx

sudo apt-get install nginx

五、接下來乾的事情

首先再專案目錄下新建一個uwsgi.ini檔案
[uwsgi]
chdir   = /你的路徑/專案
module  = 專案名稱.wsgi
master  = true
processes = 10
socket  = :8000
vacuum  = true
pythonpath = /你的虛擬環境的路徑/lib/python3.5/site-packages/ #這個需要具體調整

然後再新建一個nginx.conf檔案

upstream django {
    server 0.0.0.0:8000;
    }
server {
listen 80;
server_name 你的域名或者ip;
charset utf-8;
client_max_body_size 75M;
location /media {
    alias /你的路徑/專案/media;  # 指向django的media目錄
    }

location /static {
    alias /你的路徑/專案/static; # 指向django的static目錄
    }

location / {
    uwsgi_pass  django;
    include  uwsgi_params;
}
}

寫好之後把這個玩意連結到uwsgi的啟動配置檔案中

ln -s /你的目錄/專案/nginx.conf  /etc/nginx/conf.d/

都搞定之後,重啟一下nginx
service nginx restart

cd到你的專案目錄下,開啟uwsgi
uwsgi -i uwsgi.ini

不出意外大功告成,然後這個時候如果沒問題,首先回去在目錄下新建run.log檔案,然後修改一下uwsgi.ini檔案,新增兩行

daemonize = /你的路徑/專案/run.log
disable-logging = true

這樣的話就會將日誌資訊儲存至run.log裡面,而且不記錄正常資訊,要不然就爆了。


相關文章