教程使用的軟件版本:Ubuntu 18.04.1 LTS,django2.0,Python 3.6.5、nginx-1.13.7、uWSGI (2.0.17.1),Ubuntu是純凈的,全新的。下面我們開始來部署。
文章轉自django中文網:Ubuntu部署Django項目方法詳解
如果覺得看文字沒意思,想看視頻教程的,請點擊這里:Django項目部署視頻教程
一、更新操作系統和安裝依賴包
#更新操作系統軟件庫 sudo apt-get update sudo apt-get upgrade #安裝上傳rz、下載sz工具 sudo apt-get install lrzsz #安裝gcc g++的依賴庫 sudo apt-get install build-essential sudo apt-get install libtool #安裝 pcre依賴庫 sudo apt-get install libpcre3 libpcre3-dev #安裝 pcre依賴庫 sudo apt-get install zlib1g-dev #安裝 ssl依賴庫 sudo apt-get install openssl
二、安裝Python3和PIP3
sudo apt install python3 sudo apt install python3-pip
三、建立兩個文件夾,用於存放virtualenv環境和項目
#放虛擬環境的 sudo mkdir -p /data/env #放項目的 sudo mkdir -p /data/wwwroot
四、安裝virtualenv
sudo pip3 install virtualenv
進入env目錄
cd /data/env
指定Python版本,創建名為pyweb的虛擬環境,
sudo virtualenv -p /usr/bin/python3 pyweb
指定Python版本的時候,如果不知道Python3的路徑,可以使用下面的命令查看
which python
五、啟動虛擬環境
#啟動虛擬環境 source /data/env/pyweb/bin/activate
六、上傳項目並安裝依賴軟件庫(虛擬環境下)
把我們開發好的項目上傳到 /data/wwwroot/目錄,然后進入該目錄,先安裝項目所需要的依賴包,然后啟動項目,測試是否能正常啟動。
我這里給大家一個測試項目,大家可以用來測試,帳號和密碼分別為:admin qq445813。mysite.zip
sudo pip3 install -r requirements.txt python3 manage.py runserver
如果能正常啟動,說明項目沒啥問題。
七、安裝uwsgi
sudo pip3 install uwsgi
留意:uwsgi要安裝兩次,先在系統里安裝一次,然后進入對應的虛擬環境安裝一次。
安裝成功之后,我們進入項目根目錄/data/wwwroot/mysite/新建一個 mysite.xml文件,在里面輸入代碼:
<uwsgi> <socket>127.0.0.1:8997</socket><!-- 內部端口,自定義 --> <chdir>/data/wwwroot/mysite/</chdir><!-- 項目路徑 --> <module>mysite.wsgi</module> <processes>4</processes> <!-- 進程數 --> <daemonize>uwsgi.log</daemonize><!-- 日志文件 --> </uwsgi>
要留意里面的項目路徑和.wsgi那里填寫方法,你找到wsgi.py這個文件所在的目錄,然后填寫目錄名+.wsgi即可。
八、安裝nginx,並配置
/usr/local 目錄執行下面命令下載nginx源碼:
wget http://nginx.org/download/nginx-1.13.7.tar.gz
然后解壓它:
tar -zxvf nginx-1.13.7.tar.gz
cd 進入解壓后的nginx-1.13.7文件夾,依次執行以下命令:
sudo ./configure sudo make sudo make install
nginx一般默認安裝好的路徑為/usr/local/nginx
進入/usr/local/nginx/conf/目錄,然后備份一下nginx.conf文件,以防意外。
sudo cp nginx.conf nginx.conf.bak
然后打開nginx.conf文件,把里面的內容全部刪除,輸入下面代碼:
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name www.django.cn; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; uwsgi_param UWSGI_SCRIPT mysite.wsgi; uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #項目路徑 } location /static/ { alias /data/wwwroot/mysite/static/; #靜態資源路徑 } } }
需要留意的是,下圖長方形里我標記的代碼要和UWSGI配置文件mysite.xml一致,否則會出錯。
至於靜態資源路徑,自己settings.py里怎么設置,你就按那個設置就好。
進入/usr/local/nginx/sbin/目錄
執行下面命令先檢查配置文件是否有錯:
./nginx -t
沒有錯就執行以下命令:
./nginx
終端沒有任何提示就證明nginx啟動成功。
之后進入網站項目目錄
cd /data/wwwroot/mysite/
執行下面命令(虛擬環境下):
uwsgi -x mysite.xml
以上步驟都沒有出錯的話。
進入/usr/local/nginx/sbin/目錄
執行:
./nginx -s reload
平滑重啟nginx 。然后在瀏覽器里訪問你的項目地址!這時項目就能成功訪問。
關於后台樣式丟失問題,解決方法和Centos解決方法一樣,我就不在這里重復。
更多關於其它服務器部署Django的,請查看下面的文章: