Centos7部署Django+Vue項(xiàng)目

1瀑志、python3預(yù)置環(huán)境

sudo yum -y update
sudo yum -y wget 或 sudo yum install wget
yum -y groupinstall "Development tools"  # 如果報(bào)錯(cuò)指定組沒有可安裝或升級的軟件包吗铐,則yum clean all后再執(zhí)行安裝
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
yum install python3-devel

2、安裝python3

  • 下載python3.6到/usr/loca目錄
    wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
  • 解壓
    tar -zxvf Python-3.6.8.tgz
  • 進(jìn)入解壓好的文件中
    cd Python-3.6.8
  • 編譯安裝到指定的路徑
    ./configure --prefix=/usr/local/python3
  • 安裝python3
    make
    make install
  • 添加軟鏈接定躏,添加變量患雇,方便直接使用python3命令(如果/usr/bin中已有則無需添加)
    ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
  • 給pip3建立軟鏈接
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

注: 如果軟鏈建立完成临梗,但是卻無法使用的時(shí)候執(zhí)行下面命令:
     mv pip pip2  # (將文件 pip 更名為 pip2 )
     ln -s /usr/local/python3/bin/pip3 /usr/bin/pip 

2、虛擬環(huán)境(可選)

  • 安裝virtualenv, 方便不同版本項(xiàng)目管理(可選)
pip3 install virtualenv
# 創(chuàng)建軟鏈接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv3
  • 創(chuàng)建目錄
mkdir -p /data/env  # 存放虛擬環(huán)境
  • 創(chuàng)建環(huán)境
# 創(chuàng)建虛擬環(huán)境
virtualenv3 --python=/usr/bin/python 項(xiàng)目名    

# 進(jìn)入指定的環(huán)境bin目錄
cd /data/env/環(huán)境名稱/bin 
# 開啟虛擬環(huán)境(啟動(dòng)后出現(xiàn) (qize_demo)荧止,說明是成功進(jìn)入虛擬環(huán)境屹电。)
source activate 
# 退出虛擬環(huán)境的命令
deactivate.bat

3、部署django項(xiàng)目

  • 創(chuàng)建目錄
mkdir -p /data/wwwroot  # 存放web項(xiàng)目
  • 在本地項(xiàng)目目錄下用把當(dāng)前的環(huán)境依賴包導(dǎo)出到requirements.txt文件
    pip freeze > requirements.txt
  • 把打包的項(xiàng)目放到/data/wwwroot目錄下
  • 解壓項(xiàng)目(.zip文件使用unzip命令解壓)
  • 進(jìn)入項(xiàng)目目錄
  • 安裝requirements.txt里的依賴包跃巡。
    pip3 install -r requirements.txt
  • 如果出現(xiàn)報(bào)錯(cuò)Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build
    • 解決方案1:可以安裝yum install python36u python36u-devel危号,如果無法安裝,則使用yum install gcc mariadb-devel
    • 解決方案2:如果上面的不行素邪,則
sudo python -m pip install --upgrade --force pip 
sudo pip install setuptools==33.1.1
  • 安裝mysql5.7(設(shè)置編碼為utf8)
    http://www.reibang.com/p/59d663d73aab
    https://blog.csdn.net/airtrioa/article/details/85096469
  • 在本地把項(xiàng)目對應(yīng)的sql導(dǎo)出(可用navicat工具界面導(dǎo)出)
    mysqldump -uroot -p password >數(shù)據(jù)庫名.sql
  • 把導(dǎo)出的sql腳本放到linux的項(xiàng)目目錄下
  • 創(chuàng)建項(xiàng)目對應(yīng)的數(shù)據(jù)庫外莲,并導(dǎo)入數(shù)據(jù)
# 登錄mysql
mysql -u用戶名 -p
# 創(chuàng)建項(xiàng)目對應(yīng)的數(shù)據(jù)庫;判斷原來不存在兔朦,則創(chuàng)建數(shù)據(jù)庫偷线,并指定編碼格式和校驗(yàn)集:
 create database if not exists xxx  default character set utf8 collate utf8_general_ci;
# 創(chuàng)建成功,使用該表
use xxx
# 導(dǎo)入數(shù)據(jù)
source 腳本所在的路徑/數(shù)據(jù)庫腳本名字.sql

    # 如果數(shù)據(jù)庫創(chuàng)建錯(cuò)誤烘绽,則刪除
    drop database xxx;
    # 如果數(shù)據(jù)庫已創(chuàng)建淋昭,但是編碼忘了設(shè)置,則進(jìn)入該    庫安接,然后設(shè)置編碼為utf8
    set names utf8;
  • 退出mysql翔忽,進(jìn)入django項(xiàng)目根目錄英融,進(jìn)行數(shù)據(jù)庫遷移(期間如果報(bào)錯(cuò),則檢查setting.py中設(shè)置的數(shù)據(jù)庫名或用戶名密碼是否正確)
    python3 manage.py migrate
  • 啟動(dòng)django項(xiàng)目(8000端口)
    python3 manage.py runserver 0.0.0.0:8000
  • windows機(jī)使用telnet命令查看是否能訪問
    telnet xxxx 8000
  • 如果啟動(dòng)后歇式,外部無法訪問驶悟,則需要啟動(dòng)端口
    http://www.reibang.com/p/3c0060444b4b
  • 或者檢查setting.py的配置
ALLOWED_HOSTS = ['*']
  • 編寫和啟動(dòng)腳本start.sh,啟動(dòng)sh start.sh
    可以編寫一個(gè)簡單的后臺啟動(dòng)+標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出到日志文件中
# 后臺啟動(dòng)django服務(wù)材失,輸出日志到日志文件中痕鳍,內(nèi)容為標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤
MYDATE=`date +%Y%m%d`
ALL_LOGFILE=/data/wwwroot/xxx/log/log_$MYDATE

nohup python3 manage.py runserver 0.0.0.0:8000 > ${ALL_LOGFILE} 2>&1 &

4、部署Vue項(xiàng)目

  • 配置node npm環(huán)境
# 下載node龙巨,建議下載到/usr/local/lib
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
# 解壓node
tar -xvf node-v10.16.3-linux-x64.tar.xz  
# 修改node目錄名
mv node-v10.16.3-linux-x64 nodejs
#  創(chuàng)建軟鏈接(注意笼呆,源文件需要是絕對路徑)
ln -s /usr/local/lib/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/lib/nodejs/bin/npm /usr/local/bin/npm
# 查看版本,正確則OK
npm -v 
node -v
  • 安裝全局pm2
# 會(huì)安裝到上個(gè)步驟安裝的nodejs/bin目錄下
npm install pm2 -g
#不知道為啥旨别,-g在linux中不起作用诗赌,需要手動(dòng) 創(chuàng)建軟鏈接來設(shè)置全局(默認(rèn)安裝路徑是nodejs/bin)
ln -s /usr/local/lib/nodejs/bin/pm2 /usr/local/bin/
  • 修改vue項(xiàng)目設(shè)置api文件中的host
// 換成服務(wù)器的IP和django項(xiàng)目端口
let host = 'http://xxxx:8000';
export {host};
  • 打包vue項(xiàng)目,默認(rèn)生成一個(gè)dist目錄秸弛,這個(gè)文件夾就是我們要部署上線的項(xiàng)目
    npm run build
  • 編寫個(gè)app.js啟動(dòng)腳本铭若,主要目的是是讀取dist目錄下的單頁面文件(index.js),監(jiān)聽8080端口递览。
const fs = require('fs');
const path = require('path');
const express = require('express');
const app = express();

app.use(express.static(path.resolve(__dirname, './dist')))
//讀取目錄下的單頁面文件(index.js)叼屠,監(jiān)聽8080端口。
app.get('*', function(req, res) {
    const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')
    res.send(html)
})

app.listen(8080);

  • 把dist目錄绞铃、app.js镜雨、package.json復(fù)制到linux中的項(xiàng)目目錄下

  • 進(jìn)入到vue項(xiàng)目目錄,安裝依賴
    npm install

    安裝完依賴后的項(xiàng)目結(jié)構(gòu)

  • 啟動(dòng)服務(wù)
    pm2 start app.js

    啟動(dòng)成功

  • 放開防火墻8080端口后憎兽,則在外網(wǎng)能進(jìn)行訪問了


    訪問成功

未完待續(xù)

后續(xù)會(huì)加上Nginx+uwsgi

參考文章

vue項(xiàng)目部署參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冷离,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纯命,更是在濱河造成了極大的恐慌西剥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿汞,死亡現(xiàn)場離奇詭異瞭空,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)疗我,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門咆畏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吴裤,你說我怎么就攤上這事旧找。” “怎么了麦牺?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵钮蛛,是天一觀的道長鞭缭。 經(jīng)常有香客問我,道長魏颓,這世上最難降的妖魔是什么岭辣? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮甸饱,結(jié)果婚禮上沦童,老公的妹妹穿的比我還像新娘。我一直安慰自己叹话,他們只是感情好偷遗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驼壶,像睡著了一般鹦肿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辅柴,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音瞭吃,去河邊找鬼碌嘀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛歪架,可吹牛的內(nèi)容都是我干的股冗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼和蚪,長吁一口氣:“原來是場噩夢啊……” “哼止状!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起攒霹,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怯疤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后催束,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體集峦,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年抠刺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了塔淤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡速妖,死狀恐怖高蜂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情罕容,我是刑警寧澤备恤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布稿饰,位于F島的核電站,受9級特大地震影響烘跺,放射性物質(zhì)發(fā)生泄漏湘纵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一滤淳、第九天 我趴在偏房一處隱蔽的房頂上張望梧喷。 院中可真熱鬧,春花似錦脖咐、人聲如沸铺敌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偿凭。三九已至,卻和暖如春派歌,著一層夾襖步出監(jiān)牢的瞬間弯囊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工胶果, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匾嘱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓早抠,卻偏偏與公主長得像霎烙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蕊连,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

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