寶塔面板部署egg+web項(xiàng)目(附詳細(xì)步驟)

本文由寶塔教程欄目給大家介紹寶塔面板怎么部署egg+web項(xiàng)目,希望對(duì)需要的你有所幫助!

寶塔部署egg+web項(xiàng)目

需要本地訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)注意:

1、阿里云設(shè)置安全組

2、寶塔安裝“系統(tǒng)防火墻 2.9”=> 設(shè)置放行端口

如:7002用于訪問(wèn)mongodb,7001用于訪問(wèn)api

數(shù)據(jù)庫(kù)連接最簡(jiǎn)單的測(cè)試辦法: 就是直接在瀏覽器訪問(wèn)你的域名:端口或者用服務(wù)器ip:端口,如果你用的是域名的話注意域名需要解析綁定一下IP,可以看到瀏覽器提示如下即可:

3、本地mongoDB遷移到線上/數(shù)據(jù)庫(kù)初始化腳本

初始化數(shù)據(jù)庫(kù):app.js

app.beforeStart(async?()?=>?{ ????const?ctx?=?app.createAnonymousContext(); ????const?model?=?ctx.model; ????const?existGroup?=?await?model.UserGroup.findOne({name:?'超級(jí)管理員'}) ????if(!existGroup){ ????????????const?group?=?await?model.UserGroup.create({ ????????????"name"?:?"普通管理員", ????????????"idName"?:?"admin", ????????????"role"?:?100 ????????????}); ????} ????console.log("==app?beforeStart=="); });

4、egg運(yùn)行配置

一、添加網(wǎng)站,上傳項(xiàng)目(如果代碼有放在遠(yuǎn)程倉(cāng)庫(kù)托管建議直接在網(wǎng)站目錄下打開終端面板進(jìn)行g(shù)it clone)

注意:在上傳項(xiàng)目時(shí)把node_modules文件刪除再上傳,這樣會(huì)快很多,然后找到左側(cè)“文件”=>“終端”(收藏夾旁邊),打開輸入密碼連接(或使用服務(wù)器的終端);輸入命令行:cd /www/wwwroot/項(xiàng)目目錄,然后重新 npm install。這樣可以一定程度上避免項(xiàng)目無(wú)法啟動(dòng)的尷尬。

二、進(jìn)程管理:(待驗(yàn)證!)

可以創(chuàng)建index.js 來(lái)啟動(dòng)egg服務(wù)

方法1,egg內(nèi)置進(jìn)程管理器,可以直接項(xiàng)目目錄下運(yùn)行命令: node index.js index.js代碼:

const?egg?=?require('egg'); const?workers?=?Number(process.argv[2]?||?require('os').cpus().length); egg.startCluster({ ??workers, ??baseDir:?__dirname, });

方法2,安裝PM2進(jìn)行node進(jìn)程管理,選擇好文件后點(diǎn)擊“添加”

? 注: 配置完發(fā)現(xiàn)前端可以訪問(wèn)但是api不能訪問(wèn),注意看是不是端口占用問(wèn)題

? 查看所有端口的占用情況,輸入命令:`netstat -ano`,使用命令`pkill node` 批量殺死進(jìn)程

三、添加反向代理,代理到egg項(xiàng)目的運(yùn)行端口

5、前端項(xiàng)目打包后放在egg的靜態(tài)目錄,并在config/config.default.js 里配置好(也可另起一個(gè)項(xiàng)目)

config.static?=?{ prefix:?'/', dir:?[? path.join(__dirname,?'../app/public'),?//上傳文件等的目錄 path.join(__dirname,?'../dist')?//放置前端打包后的文件 ]}

然后再router.js里加一個(gè)重定向,把非api的請(qǐng)求重定向到index.html,以顯示前端的頁(yè)面

app.router.redirect('/',?'/index.html',?302);

6.代碼同步(使用git)

(假設(shè)本地已有g(shù)it并且提交到遠(yuǎn)程) 1、在寶塔面板,項(xiàng)目路徑下打開終端: 2、方法一、文件未提交則直接git?clone?[url] ????方法二、如果文件已提交, ?????初始化: ????????git?init ?????設(shè)置遠(yuǎn)程倉(cāng)庫(kù)地址: ????????git?remote?origin?set-url?[url]?或?git?remote?add?origin?[url] ????設(shè)置用戶名: ????????git?config?--global?user.name?[用戶名] ????????git?config?--global?user.email?[郵箱]?? ????????想要只在當(dāng)前項(xiàng)目下設(shè)置的話把--global去掉 ????如本地有文件,先執(zhí)行: ????????git?add?. ????????git?commit?-m?"init" ????????git?push?-u?origin?master ????拉取: ????????git?config?--global?credential.helper?store?//讓git記住用戶名密碼,下次不用填 ????????git?pull??//輸入用戶名密碼?拉取遠(yuǎn)程代碼便可

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享