本文講述django 詳細(xì)的部署教程,本機(jī)選擇的是ubuntu系統(tǒng),相對(duì)于比較簡(jiǎn)單,也比較詳細(xì),我也是新手,希望大家有好的意見或者建議可以多多提出了,大家一起進(jìn)步!
第一步
你本地的項(xiàng)目完成后,選擇上線的時(shí)候,首先把setting.py 里的DEBUG=True,修改為False.,如果不改成False,那么你線上出bug,用戶就會(huì)看到你的錯(cuò)誤.
把ALLOWED_HOSTS = ['*']
第二步
在你的項(xiàng)目下新建一個(gè)配置文件,uwsgi.ini,然后按照如圖,編輯這個(gè)配置文件,chdir里寫的shi在你項(xiàng)目的環(huán)境下安裝一下uwsgi
pip install uwsgi
第三步
啟動(dòng)配置文件
uwsgi --ini uwsgi.ini
查看進(jìn)程
ps -aux | grep uwsgi
這時(shí)他就會(huì)在你本地生成一個(gè)log 配置文件
只要你改文件了,就必須的殺進(jìn)程
killall -9 uwsgi
殺完進(jìn)程,在啟動(dòng)服務(wù)器,服務(wù)器上就有 數(shù)據(jù),但是沒有靜態(tài)資源,這個(gè)時(shí)候你就要搞定nginx
nginx是提供靜態(tài)資源的,它可以分清動(dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求,帶static的就是靜態(tài)請(qǐng)求,不帶的就是動(dòng)態(tài)請(qǐng)求
動(dòng)態(tài)請(qǐng)求的理解圖給大家畫一下
靜態(tài)請(qǐng)求的理解圖
第四部
安裝nginx
然后進(jìn)入到nginx的路徑里,編輯一個(gè)配置文件nginx.conf
sudo vi nginx.conf
然后把所有的進(jìn)程都?xì)⑺?然后重啟nginx,下面是ubuntu里啟動(dòng),關(guān)閉,重啟nginx的命令
啟動(dòng)nginx
/etc/init.d/nginx start 啟動(dòng)
/etc/init.d/nginx stop 或killall -9 nginx 關(guān)閉
/etc/init.d/nginx restart 重啟
這時(shí)你已經(jīng)配置完nginx本地項(xiàng)目里的uwsgi.ini配置文件里,就不能用http了,換成socket,這個(gè)socket是配合nginx使用的,這時(shí)你改動(dòng)文件了,又需要重啟uwsgi,這個(gè)時(shí)候你動(dòng)態(tài)請(qǐng)求已經(jīng)搞定完成了,再去搞定靜態(tài)吧!加油!
第五步
配置靜態(tài)資源
同時(shí)把這段話注掉
然后執(zhí)行這句話,是收集靜態(tài)資源的命令,python3 manage.py collectstatic
改完這句話后,最好是在殺進(jìn)程,然后在重啟nginx
再去項(xiàng)目里殺進(jìn)程,uwsgi --stop uwsgi.pid
在重啟uwsgi, uwsgi --ini uwsgi.ini
這個(gè)時(shí)候在啟動(dòng)一下瀏覽器,你的靜態(tài)資源就出來(lái)了
配置服務(wù)器
第一步
打開騰訊云,登錄,新買的服務(wù)器重置一下密碼
第二步
打開終端,登錄服務(wù)器
ssh ubuntu@公網(wǎng)ip 就可以登錄了
第二步
sudo apt update
第三步
sudo apt upgrade
第四步
出現(xiàn)讓你選擇的頁(yè)面,就一路回車,例如第五步
安裝pip ,你本地有的東西,遠(yuǎn)程上一定要有
第六步
安裝虛擬環(huán)境
sudo pip3 install virtualenv
這個(gè)時(shí)候興許報(bào)錯(cuò),請(qǐng)按照以下方法配置
第七步
安裝擴(kuò)展包
sudo pip3 install virtualenvwrapper
第八步,配置虛擬環(huán)境
vi.bashrc
復(fù)制這三條命令到文檔
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
配置完讓它生效
source .bashrc
第九步
配置虛擬環(huán)境
mkvirtualenv 環(huán)境名稱
第十一步
退出虛擬環(huán)境,deactivate
安裝數(shù)據(jù)庫(kù)
sudo apt-get install mysql-server mysql-cliet
這時(shí)候輸入你要設(shè)置的數(shù)據(jù)庫(kù)的密碼
第十步
換一個(gè)終端,導(dǎo)出數(shù)據(jù)庫(kù)第十一步
再去項(xiàng)目里把需要的包都導(dǎo)出來(lái)
第十二步
想任何方法把依賴的文件還有源碼,上傳到服務(wù)器 git ftp scp
本地你項(xiàng)目的文件就需要壓縮一下在上傳,不然太大了
這時(shí)上傳完了,就需要給他解壓縮一下
unzip 你的壓縮文件名
第十三步
在進(jìn)入您的虛擬環(huán)境下
workon 虛擬環(huán)境名字
再把所有依賴裝上
pip install -r 虛擬環(huán)境的文件名字
第十四步
在終端進(jìn)入你的虛擬環(huán)境,然后看看數(shù)據(jù)庫(kù),你的表有沒有
mysql -uroot -p
show databases; 查看數(shù)據(jù)庫(kù)
use 數(shù)據(jù)庫(kù)名;
show table; 看看你有什么表
exit 退出數(shù)據(jù)庫(kù)
第十五步
進(jìn)入虛擬機(jī)里的項(xiàng)目所在位置,看看里面一定要有一個(gè) uwsgi.ini 的文件然后進(jìn)入編輯這個(gè)文件vi uwsgi.ini
編輯完后在進(jìn)一層, cd MyBlog 就會(huì)看到這么多文件
在 vi setting.py
檢查 DEBUG = False
ALLOWED_HOSTS = ['*']
在看看靜態(tài)文件是否收集
看上傳圖片注掉沒
在返回上一層,看一下進(jìn)程,uwsgi起來(lái)沒起來(lái)
ps -aux | grep uwsgi
如果看到它啟動(dòng)了,在殺掉
uwsgi --stop uwsgi.pid 把主進(jìn)程都?xì)⒌?br> 在看一下進(jìn)程是不是都沒有了
如果沒有了,在啟動(dòng) uwsgi --ini uwsgi.ini
在看一下是否啟動(dòng)了
這時(shí)候在去看 nginx 文件夾, 進(jìn)入編輯sudo vi nginx.conf
server_name 后面寫的是自己服務(wù)器的公網(wǎng)地址
然后進(jìn)入到這個(gè)路徑,error.log 這個(gè)里寫的是你報(bào)錯(cuò)的日志,為什么起不來(lái)
在把nginx殺掉,可以直接用這個(gè)命令 /etc/init.d/nginx stop
/etc/init.d/nginx start 啟動(dòng)
這個(gè)時(shí)候去瀏覽器,輸入你的公網(wǎng)ip,你就會(huì)啟動(dòng)你的網(wǎng)頁(yè)了!這就是部署服務(wù)器的全部操作,希望能幫到大家,謝謝大家觀看!