本文由寶塔教學專欄為大家介紹寶塔面板怎麼部署egg web項目,希望對需要的你有幫助!
寶塔部署egg web專案
需要本地存取遠端資料庫注意:
1、阿里雲設定安全群組
2、寶塔安裝「系統防火牆2.9」=> 設定放行埠
如:7002用於存取mongodb,7001用於存取api
資料庫連線最簡單的測試辦法: 就是直接在瀏覽器存取你的網域:連接埠或用伺服器ip:連接埠,如果你用的是網域的話注意網域需要解析綁定IP,可以看到瀏覽器提示如下即可:
3、本機mongoDB遷移到線上/資料庫初始化腳本
#初始化資料庫:app.js##
app.beforeStart(async () => { const ctx = app.createAnonymousContext(); const model = ctx.model; const existGroup = await model.UserGroup.findOne({name: '超级管理员'}) if(!existGroup){ const group = await model.UserGroup.create({ "name" : "普通管理员", "idName" : "admin", "role" : 100 }); } console.log("==app beforeStart=="); });##4 、egg運行配置
一、新增網站,上傳專案(如果程式碼有放在遠端倉庫託管建議直接在網站目錄下開啟終端面板進行git clone)
注意:在上傳項目時把node_modules檔案刪除再上傳,這樣會快很多,然後找到左側「檔案」=>「終端」(收藏旁邊),打開輸入密碼連線(或使用伺服器的終端機);輸入命令列:cd /www/wwwroot/專案目錄,然後重新npm install。這樣可以一定程度上避免專案無法啟動的尷尬。
二、進程管理:(待驗證!)
可以建立index.js 來啟動egg服務
方法1,egg內建進程管理器,可以直接專案目錄下執行指令: 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進行node進程管理,選擇好檔案後點選「新增」
注意: 設定完發現前端可以訪問但是api不能訪問,注意看是不是端口佔用問題
查看所有端口的佔用情況,輸入命令:`netstat -ano`,使用命令`pkill node` 批量殺死進程
三、新增反向代理,代理到egg專案的運行連接埠
5、前端專案打包後放在egg的靜態目錄,並在config/config.default.js 裡配置好(也可另起一個項目)config.static = {
prefix: '/',
dir: [
path.join(__dirname, '../app/public'), //上传文件等的目录
path.join(__dirname, '../dist') //放置前端打包后的文件
]}
然後再router.js裡加一個重定向,把非api的請求重定向到index.html,顯示前端的頁面
app.router.redirect('/', '/index.html', 302);6.程式碼同步(使用git)
(假设本地已有git并且提交到远程)
1、在宝塔面板,项目路径下打开终端:
2、方法一、文件未提交则直接git clone [url]
方法二、如果文件已提交,
初始化:
git init
设置远程仓库地址:
git remote origin set-url [url] 或 git remote add origin [url]
设置用户名:
git config --global user.name [用户名]
git config --global user.email [邮箱]
想要只在当前项目下设置的话把--global去掉
如本地有文件,先执行:
git add .
git commit -m "init"
git push -u origin master
拉取:
git config --global credential.helper store //让git记住用户名密码,下次不用填
git pull //输入用户名密码 拉取远程代码便可
以上是寶塔面板部署egg+web專案(附詳細步驟)的詳細內容。更多資訊請關注PHP中文網其他相關文章!