ubuntu部署django專案

2022-07-23 06:12:11 字數 3716 閱讀 5809

教程使用的軟體版本:ubuntu 18.04.1 lts,django2.0,python 3.6.5、nginx-1.13.7、uwsgi (2.0.17.1),ubuntu是純淨的,全新的。下面我們開始來部署。

一、更新作業系統和安裝依賴包

#更新作業系統軟體庫

sudo apt-get update

sudo apt-get upgrade

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。

sudo pip3 install -r requirements.txt

python3 manage.py runserver

七、安裝uwsgi
sudo pip3 install uwsgi
安裝成功之後,我們進入專案根目錄/data/wwwroot/mysite/新建乙個 mysite.xml檔案,在裡面輸入**:

>    

>127.0.0.1:8997>

>/data/wwwroot/mysite/>

>mysite.wsgi>

>4>

>uwsgi.log>

>

要留意裡面的專案路徑和.wsgi那裡填寫方法,你找到wsgi.py這個檔案所在的目錄,然後填寫目錄名+.wsgi即可。

八、安裝nginx,並配置

然後解壓它:

tar -zxvf nginx-1.13.7.tar.gz

cd 進入解壓後的nginx-1.13.7資料夾,依次執行以下命令:

./configure 

make

make install

nginx一般預設安裝好的路徑為/usr/local/nginx

進入/usr/local/nginx/conf/目錄,然後備份一下nginx.conf檔案,以防意外。

cp nginx.conf nginx.conf.bak

然後開啟nginx.conf檔案,把裡面的內容全部刪除,輸入下面**:

需要留意的是,下圖長方形裡我標記的**要和uwsgi配置檔案uwsgi.xml一致,否則會出錯。

至於靜態資源路徑,自己settings.py裡怎麼設定,你就按那個設定就好。

進入/usr/local/nginx/sbin/目錄

執行下面命令先檢查配置檔案是否有錯:

./nginx -t
沒有錯就執行以下命令:

./nginx
終端沒有任何提示就證明nginx啟動成功。這裡在瀏覽器裡輸入伺服器ip就能看到nginx歡迎頁面。

之後進入**專案目錄

cd /data/wwwroot/mysite/
執行下面命令:

uwsgi -x mysite.xml
以上步驟都沒有出錯的話。

進入/usr/local/nginx/sbin/目錄

執行:

./nginx -s reload
平滑重啟nginx 。然後在瀏覽器裡訪問你的專案位址!這時專案就能成功訪問。

關於後台樣式丟失問題,解決方法和centos解決方法一樣,我就不在這裡重複。

cd /

結果:

2.png

補充問題

伺服器上時

1.通過linux檢視linux服務是否啟動。

可以看到服務成功啟動,但是在瀏覽器上還是無法訪問。

解決辦法:

新增 80 段埠配置

firewall-cmd --zone=public --add-port=80/tcp --permanent

重啟防火牆

systemctl restart firewalld.service

2.在專案更新的時候 更新完而服務沒有重新啟動,導致靜態頁面被載入但是python 執行的主程式沒有被重新啟用,所以把uwsgi程序全部殺死

然後重新啟動

如何殺死uwsgi

sudo pkill -f uwsgi -9

uwsgi --ini mysite.uwsgi.ini

3.為什麼重新啟動ng主要是他在環境的配置過程中主要進行監聽80埠,而主導python程式的是uwsgi 所以把uwsgi重啟,就相當於把更改完後的python**執行一遍

Ubuntu部署Django專案

1.安裝ubuntu系統或centos系統 2.pip freeze requirements.txt 3.pip install r requirements.txt 4.相關環境搭建 5.sudo passwd 輸入root相關密碼 6.輸入su回車 進入超級管理員 sudo apt get i...

Django部署在ubuntu上

一.安裝django sudo apt install python3 pip 安裝pip pip v 檢視pip的版本 pip install django 預設安裝最新的django版本 當然安裝前需要更新一下系統的檔案 sudo apt update 二.uwsgi wsgi是python程式...

Ubuntu下部署Django專案

1 pip freeze requirements.txtdebug false allowed hosts static root os.path join base dir,static url r static p.serve,收集admin後台的靜態檔案,如果不收集,將來訪問linux的bl...