Python-django項(xiàng)目部署教程

項(xiàng)目開發(fā)完成后可以部署到阿里云,華為云,騰訊云等服務(wù)器,
以騰訊云為例

本地部署

以下是ubuntu上的部署詳細(xì)步驟:

1.布署前需要關(guān)閉調(diào)試获三、允許任何機(jī)器訪問,打開settings.py文件

DEBUG = False
ALLOW_HOSTS=['*',]

2.安裝uwsgi

pip install uwsgi

3.配置uwsgi梳凛,在項(xiàng)目目錄下創(chuàng)建uwsgi.ini文件耿币,配置如下:

 [uwsgi]
# Django-related settings
#python3 manage.py runserver
#http = 127.0.0.1:8000
socket = 127.0.0.1:8000
#項(xiàng)目路徑
chdir           = /home/hu/桌面/1807project/MyBlog
#wsgi文件
module          = MyBlog.wsgi
#主進(jìn)程
master          = true
#指定工作進(jìn)程
processes       = 4
#每個(gè)工作進(jìn)程2個(gè)線程
threads = 2
#指后臺(tái)啟動(dòng)  日志輸出的地方
daemonize       = uwsgi.log
#保存主進(jìn)程進(jìn)程號(hào)
pidfile = uwsgi.pid
#虛擬環(huán)境路徑
virtualenv = /home/hu/.virtualenvs/1807_blog

4.啟動(dòng)uwsgi服務(wù)器

uwsgi --ini uwsgi.ini

5.不確定是否啟動(dòng)成功,搜進(jìn)程

ps -aux|grep uwsgi
2018-12-08 16-12-33屏幕截圖.png

同時(shí)會(huì)在項(xiàng)目目錄下生成uwsgi.log日志文件
uwsgi.pid 中保存主進(jìn)程的pid
6.進(jìn)入應(yīng)用下urls.py配置

url(r'^$', views.index)

7.只要改動(dòng)代碼就需重啟uwsgi
首先殺進(jìn)程

killall -9 uwsgi

查看是否殺掉

ps -aux|grep uwsgi
2018-12-08 16-39-27屏幕截圖.png

再次啟動(dòng)

uwsgi --ini uwsgi.ini

暫缺css樣式,此時(shí)用的服務(wù)器不再是django提供的服務(wù)器,用的是uwsgi服務(wù)器,django同時(shí)不再提供靜態(tài)資源,此時(shí)需用nginx服務(wù)器
8.安裝nginx

sudo apt install nginx

9.進(jìn)入/etc/nginx/配置nginx.conf

sudo vi nginx.conf

寫到http括號(hào)下,保存并退出

server {
          listen 80;
          server_name 127.0.0.1;
 
          #動(dòng)態(tài)請(qǐng)求
          location / {
              include uwsgi_params;
              uwsgi_pass 127.0.0.1:8000;
          }
          #靜態(tài)
         location /static {
            alias /home/hu/桌面/MyBlog/static ;
 
          }
 }

10.進(jìn)程殺掉

killall -9 nginx

查看是否殺掉進(jìn)程

ps -aux|grep nginx

指定進(jìn)程號(hào)殺掉

sudo kill -9 進(jìn)程號(hào)

11.啟動(dòng)nginx

/etc/init.d/nginx start

切記:配置uwsgi.ini中把http改為socket


2018-12-08 17-28-53屏幕截圖.png

重啟uwsgi
12.配置settings.py(收集靜態(tài)資源)

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

注意:

STATIC_URL = '/static/'
# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, 'static')
# ]

收集所有靜態(tài)資源
執(zhí)行

python3 manage.py collectstatic

修改nginx配置,開啟靜態(tài)請(qǐng)求
殺nginx進(jìn)程,重啟nginx
pycharm同步殺uwsgi進(jìn)程,重啟nginx
127.0.0.1刷新 靜態(tài)資源出現(xiàn)(nginx給的靜態(tài)資源)

服務(wù)器部署

打開騰訊云,點(diǎn)擊右上角控制臺(tái),登錄,點(diǎn)擊云產(chǎn)品--云服務(wù)器,z找到你購買的服務(wù)器(我是重慶地區(qū))
修改密碼
選中ID/實(shí)例名,重置密碼,選中同意重啟,重啟的是遠(yuǎn)程服務(wù)端
遠(yuǎn)程登錄服務(wù)器


2018-12-09 11-45-42屏幕截圖.png

1.刷新

sudo apt update

2.升級(jí)

sudo apt upgrade

3.選中ok,然后一直Enter


2018-12-09 11-51-36屏幕截圖.png

4.本地有的配置遠(yuǎn)程服務(wù)端也得有
<1>安裝pip

sudo apt install python3-pip

<2>安裝虛擬環(huán)境

sudo pip3 install virtualenv

<3>若出現(xiàn)以下報(bào)錯(cuò)


2018-12-09 12-02-54屏幕截圖.png

分析原因:
locale是用來設(shè)置軟件運(yùn)行的語言環(huán)境,所以語言環(huán)境設(shè)置有問題
重新設(shè)置語言環(huán)境韧拒,最簡(jiǎn)單的解決辦法:
第一條

     echo "export  LC_ALL=en_US.UTF-8"

第二條

     echo "export  LC_ALL=en_US.UTF-8"

第三條

    exit

重新登錄服務(wù)器,如果還報(bào)錯(cuò)

export LC_ALL=C

<4>安裝擴(kuò)展包

sudo pip3 install virtualenvwrapper

<5>配置虛擬環(huán)境
進(jìn)入

vi .bashrc

配置

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

生效

source .bashrc

<5>創(chuàng)建虛擬環(huán)境

mkvirtualenv 環(huán)境名

<6>安裝數(shù)據(jù)庫
退出環(huán)境

deactivate

安裝數(shù)據(jù)庫

sudo apt-get install mysql-server mysql-client

重新打開一個(gè)終端
導(dǎo)出本地?cái)?shù)據(jù)庫

mysqldump -uroot -p 1807_blog_db > /home/hu/桌面/blog.sql

導(dǎo)出本地依賴第三方
進(jìn)入虛擬環(huán)境

pip freeze > /home/hu/桌面/requirements.txt

<7>想任何辦法把數(shù)據(jù)庫和依賴文件還有源碼 上傳到服務(wù)器 git ftp scp
以下以scp為例
放到/home/ubuntu/目錄下

數(shù)據(jù)庫

scp -r blog.sql ubuntu@94.191.34.142

第三方依賴

scp -r requirements.txt ubuntu@94.191.34.142

項(xiàng)目源碼壓縮

tar -zcvf MyBlog MyBlog.tar.gz

上傳到服務(wù)器

scp -r MyBLog.zip ubuntu@94.191.34.142

解壓縮

unzip MyBlog.zip

進(jìn)入虛擬環(huán)境

workon 環(huán)境名

裝依賴包
pip install -r requirements.txt
安裝nginx

sudo apt-get install nginx

安裝uwsgi

pip  install uwsgi

進(jìn)入項(xiàng)目,配置uwsgi


2018-12-09 15-36-38屏幕截圖.png

查看uwsgi是否啟動(dòng),若啟動(dòng)殺進(jìn)程,啟動(dòng)uwsgi
查看nginx配置文件

cd/etc/nginx/
vi nginx.conf

寫到http括號(hào)下,保存并退出

server {
          listen 80;
          server_name 94.191.34.142;
 
          #動(dòng)態(tài)請(qǐng)求
          location / {
              include uwsgi_params;
              uwsgi_pass 127.0.0.1:8000;
          }
          #靜態(tài)
         location /static {
            alias /home/ubuntu/MyBlog/static ;
 
          }
 }

查看nginx日志

cd /etc/nginx/var/log/ngix/

查看uwsgi日志

cd /home/ubuntu/MyBlog/

殺掉nginx進(jìn)程,再次啟動(dòng)
去瀏覽器訪問公網(wǎng)IP

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淹接,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叛溢,更是在濱河造成了極大的恐慌蹈集,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雇初,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡减响,警方通過查閱死者的電腦和手機(jī)靖诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門郭怪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刊橘,你說我怎么就攤上這事鄙才。” “怎么了促绵?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵攒庵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我败晴,道長(zhǎng)浓冒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任尖坤,我火速辦了婚禮稳懒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慢味。我一直安慰自己场梆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布纯路。 她就那樣靜靜地躺著或油,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驰唬。 梳的紋絲不亂的頭發(fā)上顶岸,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音定嗓,去河邊找鬼蜕琴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宵溅,可吹牛的內(nèi)容都是我干的凌简。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼恃逻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼雏搂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寇损,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤凸郑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后矛市,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芙沥,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了而昨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片救氯。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖歌憨,靈堂內(nèi)的尸體忽然破棺而出着憨,到底是詐尸還是另有隱情,我是刑警寧澤务嫡,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布甲抖,位于F島的核電站,受9級(jí)特大地震影響心铃,放射性物質(zhì)發(fā)生泄漏准谚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一于个、第九天 我趴在偏房一處隱蔽的房頂上張望氛魁。 院中可真熱鬧,春花似錦厅篓、人聲如沸秀存。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽或链。三九已至,卻和暖如春档押,著一層夾襖步出監(jiān)牢的瞬間澳盐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工令宿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叼耙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓粒没,卻偏偏與公主長(zhǎng)得像筛婉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子癞松,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • uWSGI參考資料(1.0版本的配置選項(xiàng)列表) 下面的內(nèi)容包含了大部分uWSGI的配置選項(xiàng)爽撒,這些配置選項(xiàng)的列舉沒有...
    nine_9閱讀 22,179評(píng)論 1 10
  • 部署環(huán)境要求 1、centos7 64位(CentOS Linux release 7.5.1804 (Core)...
    gytlgac閱讀 1,855評(píng)論 1 1
  • 學(xué)習(xí) Flask响蓉,寫完一個(gè) Flask 應(yīng)用需要部署的時(shí)候硕勿,就想著折騰自己的服務(wù)器。根據(jù)搜索的教程照做枫甲,對(duì)于原理一...
    Cocoa_Coder閱讀 17,122評(píng)論 4 56
  • 前言 《Django部署到線上》一文中源武,很多步驟不是必須的扼褪,有些部分甚至是錯(cuò)誤的,本文就精簡(jiǎn)修改一下粱栖。目標(biāo):把dj...
    VoidKing閱讀 2,202評(píng)論 6 11
  • 為什么要使用nginx+uwsgi+flask 因?yàn)闃?biāo)準(zhǔn)python只能是單線程迎捺,無法并發(fā),而uwsgi/guni...
    佑___閱讀 3,845評(píng)論 0 5