Yapi离线部署(源码部署)

一,环境搭建

1.nodeJS环境搭建

说明:

nodejs源码包获取路径:Index of /dist/ 

在此我选择的版本为:node-v14.15.0-linux-x64 (最初选择为node-v20.11.1-linux-x64,看网上有介绍node版本太高会导致服务无法运行,后来改了node-v12.20.0-linux-x64,这个版本在运行pm2时会报版本不匹配的错误)

安装node

将node压缩包拷贝至服务器 /opt/nodejs文件目录下

解压缩文件

sudo tar -zxvf node-v14.15.0-linux-x64 ./

在/usr/bin下创建软连接(方便直接调用 node 和npm)

sudo ln -s /opt/nodejs/node-v14.15.0-linux-x64/bin/node /usr/bin/node
sudo ln -s /opt/nodejs/node-v14.15.0-linux-x64/bin/npm /usr/bin/npm

通过查看版本信息确认node是否安装成功

2.安装MongoDB

说明:

MongoDB使用的版本为:mongodb-org-server-4.0.28-1.el8.x86_64.rpm,采用的rpm包的安装方式

安装MongoDB
yum install -y mongodb-org-server-4.0.28-1.el8.x86_64.rpm

执行命令查看MongoDB版本信息,看是否安装成功

查看配置文件信息

sudo vim /etc/mongod.conf

MongoDB配置文件说明

port=27017 #端口
dbpath= /usr/mongodb/db #数据库存文件存放目录
logpath= /usr/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0  #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

启动MongoDB

mongod -f /etc/mongod.conf

添加超级管理员

注:若要访问MongoDB数据库此处还需再安装一个MongoDB shell工具---mongosh;下载路径:MongoDB Shell Download | MongoDB   ;安装成功mongosh,创建软连接

sudo ln -s  /opt/mongodb/mongosh-2.1.5-linux-x64/bin/mongosh /usr/bin/mongosh

a.进入MongoDB数据库

mongosh      //进入MongoDB数据库

b.选择admin数据库

use admin

c.添加admin超级管理员

db.createUser({user:'admin', pwd:'okuy89YY', roles:[{role:'root', db:'admin'}]})
//该命令就是给admin数据库添加了admin的用户(注:mongo为每一个数据库都提供了一套用户权限)

d.关闭数据库

db.shutdownServer()

e.重新启动MongoDB

mongod -f /etc/mongod.conf

f.为yapi添加数据库和用户

//进入MongoDB
mongosh
//选择数据库
use yapi
//创建用户,记牢用户名和密码,在yapi配置中会用到
db.createUser({user:'yapi', pwd:'8855hYU', roles:[{role:'readWrite', db:'yapi'}]})

二,Yapi部署(源码)

github下载yapi安装包(可参考路径 https://github.com/YMFE/yapi.git)

将yapi源码包拷贝至/opt/yapi/vendors/路径下

cp vendors/config_example.json ./config.json  
//将vendors目录下的config_example.json文件拷贝至 vendors同级目录,并改名为config.json 因代码执行时会调用config.json的相对路径

npm安装源码依赖包

npm install --production --registry https://registry.npm.taobao.org
//通过淘宝的源来下载yapi源码所依赖的库包,如果服务器无法联网该命令无法执行

如果没有执行npm install 直接运行yapi会报如下错误


Error:  internal/modules/cjs/loader.js:905
  throw err;
  ^
 
Error: Cannot find module 'fs-extra'
Require stack:
- C:\Users\Think\my-yapi\vendors\server\install.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._load (internal/modules/cjs/loader.js:746:27)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:93:18)
    at Object.<anonymous> (C:\Users\Think\my-yapi\vendors\server\install.js:1:12)

"fs-extra"错误解决办法:将yapi源码拷贝至可联网并且有VUE(node)环境的个人电脑,在源码目录下执行npm install 更新库包

更新完库包后,在源码目录下回多出来一个node_modules文件夹(下载的依赖库包400M左右),将所有源码重新打包,放至服务器/opt/yapi/vendors/路径下

配置vendors同级目录下的config.json文件

{
  "port": "3000",  //可自定义端口号
  "adminAccount": "admin@admin.com",  //yapi登录是管理员邮箱,默认密码ymfe.org该邮箱需要自己再重新定义一个,因MongoDB中已存在admin这个用户。
  "timeout":120000,  //超时设置
  "db": {
    "servername": "127.0.0.1",   //MongoDB服务器所在的IP地址
    "DATABASE": "yapi",   //连接的数据库
    "port": 27017,     //数据库端口
    "user": "yapi",      //数据库用户名
    "pass": "12333.",  //数据库密码
    "authSource": ""
  },
  "mail": {
    "enable": true,
    "host": "smtp.163.com",
    "port": 465,
    "from": "***@163.com",
    "auth": {
      "user": "***@163.com",
      "pass": "*****"
    }
  }
}

初始化数据库索引和管理员账户

npm run install-server

如果报错如下,说明cai@gmail.com用户名已经存在,重新修改配置档中的adminAccount

启动yapi

node server/app.js

yapi完整的目录结构如下:

|-- config.json
|-- init.lock
|-- log
`-- vendors
    |-- CHANGELOG.md
    |-- LICENSE
    |-- README.md
    |-- client
    |-- common
    |-- config_example.json
    |-- doc
    |-- exts
    |-- nodemon.json
    |-- npm-debug.log
    |-- package.json
    |-- plugin.json
    |-- server
    |-- static
    |-- test
    |-- webpack.alias.js
    |-- yapi-base-flow.jpg
    |-- ydocfile.js
    `-- ykit.config.js

 安装pm2管理node 启动yapi

npm install pm2 -g

pm2啓動yapi

pm2 start /opt/yapi/vendors/server/app.json

pm2 启动可实现后台运行,推荐使用pm2启动

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值