Ubuntu18下nginx+uwsgi+django項(xiàng)目部署

1 安裝python環(huán)境和所需庫(kù)

1 檢查python環(huán)境

圖片1.png

2 檢查pip是否可用

不可用,使用命令apt-get install python-pip進(jìn)行安裝忙上,出現(xiàn)安裝不了

圖片2.png

問(wèn)題是需要更新系統(tǒng)鏡像源

備份系統(tǒng)鏡像源文件cp /etc/apt/sources.list /etc/apt/sources.list.backup

打開(kāi)并修改vi /etc/apt/sources.list

添加以下內(nèi)容:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted univer

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse

更新系統(tǒng)鏡像源apt-get uptate掸哑,重新安裝pip成功治拿,但使用Pip出現(xiàn)問(wèn)題

圖片3.png

解決方法糠溜,系統(tǒng)鏡像源添加以下內(nèi)容:

deb http://cn.archive.ubuntu.com/ubuntu bionic main multiverse restricted universe

deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe

deb http://cn.archive.ubuntu.com/ubuntu bionic-security main multiverse restricted universe

deb http://cn.archive.ubuntu.com/ubuntu bionic-proposed main multiverse restricted univers

再次更新系統(tǒng)鏡像源攒盈,卸載pip , apt-get remove python-pip壳贪,再重新安裝apt-get install python-pip

3 安裝項(xiàng)目所需的python 庫(kù)

python3 -m pip install -r requirements_blog.txt

圖片4.png

2 安裝數(shù)據(jù)庫(kù)并遷移數(shù)據(jù)

1安裝配置MySQL

安裝命令:

sudo apt-get install mysql-server //服務(wù)端

sudo apt-get install mysql-client //客戶端

sudo apt-get install libmysqlclient-dev //程序編譯時(shí)鏈接的庫(kù)

安裝完成之后可以使用如下命令來(lái)檢查是否安裝成功:sudo netstat -tap | grep mysql

圖片5.png

安裝成功登錄:mysql -u root -p 陵珍,輸入初始密碼(直接回車)

更改mysql密碼如下:

use mysql;

// 下一行,密碼改為了yourpassword违施,可以設(shè)置成其他的

update mysql.user set authentication_string=password('yourpassword') where user='root' and Host ='localhost';

update user set plugin="mysql_native_password";

flush privileges;

quit;

設(shè)置允許遠(yuǎn)程登錄:

首先編輯文件/etc/mysql/mysql.conf.d/mysqld.cnf:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注釋掉bind-address = 127.0.0.1:

保存退出互纯,然后進(jìn)入mysql服務(wù),執(zhí)行授權(quán)命令:

   grant all on *.* to root@'%' identified by '你的密碼' with grant option;

   flush privileges;

重啟mysql服務(wù)磕蒲,進(jìn)行遠(yuǎn)程連接

service mysql restart

2 遷移數(shù)據(jù)庫(kù)

1 導(dǎo)出(轉(zhuǎn)儲(chǔ)sql文件)項(xiàng)目所需數(shù)據(jù)庫(kù).sql文件到windows本地留潦, 在服務(wù)器上建一個(gè)同名數(shù)據(jù)庫(kù)(注意字符集和排序與原來(lái)一致)

2 用可視化工具導(dǎo)入sql(運(yùn)行sql文件)到部署服務(wù)器(如Ubuntu)只盹,或上傳sql 文件到服務(wù)器,并執(zhí)行sql腳本【 Mysql 的 bin 目錄】 \mysql – u 用戶名 – p 密碼 – D 數(shù)據(jù)庫(kù) < 【 sql 腳本文件路徑全名】兔院,示例:mysql -u root -p123456 -D djangoblog < /root/djangoblog.sql

3 安裝項(xiàng)目其他依賴服務(wù)(例如redis或mongodb)

4 Django開(kāi)發(fā)模式調(diào)試

把項(xiàng)目傳到指定路徑并解壓(一般不要放在root下)殖卑,開(kāi)啟django調(diào)試模式,無(wú)異常

圖片6.png

5 安裝并配置nginx服務(wù)

1 安裝nginx 依賴包

出現(xiàn)Unable to acquire the dpkg frontend lock問(wèn)題秆乳,解決方案重啟系統(tǒng)

sudo systemctl --force --force reboot

再繼續(xù)安裝

apt-get install gcc

apt-get install libpcre3 libpcre3-dev

apt-get install zlib1g zlib1g-dev

sudo apt-get install openssl

sudo apt-get install libssl-dev

2 下載并解壓nginx

cd /usr/local

mkdir nginx

cd nginx

wget http://nginx.org/download/nginx-1.13.7.tar.gz

tar -xvf nginx-1.13.7.tar.gz

3 編譯并安裝

進(jìn)入nginx目錄

/usr/local/nginx/nginx-1.13.7

執(zhí)行命令

./configure

執(zhí)行make命令

make

執(zhí)行make install命令

make install

4 啟動(dòng)nginx懦鼠,進(jìn)入瀏覽器測(cè)試

進(jìn)入nginx啟動(dòng)目錄

cd /usr/local/nginx/sbin

啟動(dòng)nginx

./nginx

輸入服務(wù)器IP測(cè)試

圖片7.png

5 修改 nginx 配置文件

1 把nginx 安裝目錄下的 nginx.conf 文件 copy 到項(xiàng)目目錄下,如下

cp /usr/local/nginx/conf/nginx.conf /home/DjangoBlog/blog_nginx.conf

2 進(jìn)入blog_nginx.conf文件 屹堰,修改如下內(nèi)容:

|

server {

    listen       80;  

    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

定義nginx 訪問(wèn)和錯(cuò)誤的路徑

    access_log /home/DjangoBlog/nginx_access.log;      

    error_log /home/DjangoBlog/nginx_error.log;

    location /static {

    # 定義靜態(tài)文件的系統(tǒng)絕對(duì)路徑(跟系統(tǒng)靜態(tài)文件路徑一致)

  alias /home/DjangoBlog/collectedstatic; 

    }

    location / {

    # 定義uwsgi_params 和與uwsgi 通信的本地端口

    include     /usr/local/nginx/conf/uwsgi_params;

    uwsgi_pass  127.0.0.1:9090;

    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   html;

    }

|

將nginx 安裝目錄下的mime.types 文件copy 到項(xiàng)目根目錄下

cp /usr/local/nginx/conf/mime.types /root/DjangoBlog

6 按指定文件啟動(dòng)nginx

/usr/local/nginx/sbin/nginx -c /home/DjangoBlog/blog_nginx.conf

/usr/local/nginx/sbin/nginx -c /home/DjangoBlog/blog_nginx.conf -s reload

備注: 后續(xù)操作服務(wù)命令

執(zhí)行nginx /usr/local/nginx/sbin/nginx

重載nginx /usr/local/nginx/sbin/nginx -s reload

終止nginx /usr/local/nginx/sbin/nginx -s stop

6 安裝并配置uwsgi服務(wù)

1 安裝uwsgi

python3 -m pip install uwsgi

2 配置 uwsgi 文件

在項(xiàng)目根目錄下創(chuàng)建uwsgi.ini肛冶,并進(jìn)入添加如下內(nèi)容


[uwsgi]

socket = 127.0.1:9090       # 與nginx 配置文件的uwsgi_pass 一致

chdir=/home/DjangoBlog     # 項(xiàng)目絕對(duì)路徑

module= DjangoBlog.wsgi     #  [wsgi.py](http://wsgi.py/)在項(xiàng)目中的相對(duì)路徑

master = true         # 開(kāi)啟主進(jìn)程

processes=2   # 配置子進(jìn)程數(shù)

threads=2   # 配置線程數(shù)

max-requests=2000   

chmod-socket=664

vacuum=true
# daemonize=/home/DjangoBlog/uwsgi.log# uwsgi日志的存儲(chǔ)路徑,不需要重定向輸出應(yīng)注釋掉

3 啟動(dòng)uwsgi

Uwsgj --ini 配置文件絕對(duì)路徑扯键,如:

uwsgi --ini /home/DjangoBlog/uwsgi.ini

圖片8.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末睦袖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子荣刑,更是在濱河造成了極大的恐慌馅笙,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厉亏,死亡現(xiàn)場(chǎng)離奇詭異董习,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)爱只,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門皿淋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人恬试,你說(shuō)我怎么就攤上這事窝趣。” “怎么了训柴?”我有些...
    開(kāi)封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵哑舒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我幻馁,道長(zhǎng)洗鸵,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任仗嗦,我火速辦了婚禮预麸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘儒将。我一直安慰自己,他們只是感情好对蒲,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布钩蚊。 她就那樣靜靜地躺著贡翘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰逻。 梳的紋絲不亂的頭發(fā)上鸣驱,一...
    開(kāi)封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音蝠咆,去河邊找鬼踊东。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刚操,可吹牛的內(nèi)容都是我干的闸翅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼菊霜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼坚冀!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鉴逞,我...
    開(kāi)封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤记某,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后构捡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體液南,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年勾徽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滑凉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捂蕴,死狀恐怖譬涡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啥辨,我是刑警寧澤涡匀,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站溉知,受9級(jí)特大地震影響陨瘩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜级乍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一舌劳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玫荣,春花似錦甚淡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)资柔。三九已至,卻和暖如春撵割,著一層夾襖步出監(jiān)牢的瞬間贿堰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工啡彬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羹与,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓庶灿,卻偏偏與公主長(zhǎng)得像纵搁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跳仿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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