二、工具、环境
1、工具:xshell5
2、VMware 版本:VMware Workstation Pro15
3、虚拟机安装 Centos7.x
参考 javascript:void(0)
4、NodeJS v8.17
参考 javascript:void(0)
5、MongoDB v4.0.22
参考javascript:void(0)
1、防火墙配置开启指定端口
[root@localhost ~]# firewall-cmd --list-all
[root@localhost ~]# firewall-cmd --permanent --add-port=9090/tcp
[root@localhost ~]# firewall-cmd --permanent --add-port=3000/tcp
[root@localhost ~]# service firewalld restart
关闭防火墙(不推荐)
关闭防火墙 :[root@localhost ~]# systemctl stop firewalld
查看状态 : [root@localhost ~]# systemctl status firewalld
开机禁用 : [root@localhost ~]# systemctl disable firewalld
2、禁用 SELinux
参考 javascript:void(0)
1、MongoDB 官网下载页面
https://www.mongodb.com/try/download/community
说明:本文中 MongoDB 选择了 v4.0.22 版本,没有选择最新版本。
2、系统创建目录
[root@master ~]# mkdir -p /opt/mongodb
3、下载安装文件
[root@master ~]# wget -P /opt/mongodb https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.22.tgz
4、进入安装包所在目录
[root@master ~]# cd /opt/mongodb/
5、解压缩安装文件、查看文件目录
# 解压缩文件
[root@master mongodb]# tar zxf mongodb-linux-x86_64-4.0.22.tgz
6、创建目录、赋权(用来存放数据、日志、配置文件)
[root@master ~]# mkdir /opt/mongodb/mongodb-linux-x86_64-4.0.22/data
[root@master ~]# mkdir /opt/mongodb/mongodb-linux-x86_64-4.0.22/log
[root@master ~]# mkdir /opt/mongodb/mongodb-linux-x86_64-4.0.22/conf
7、创建、编辑配置文件
[root@master ~]# vim /opt/mongodb/mongodb-linux-x86_64-4.0.22/conf/mongodb.conf
8、编辑、写入内容
# 端口
port=27017
# 数据库存文件存放目录
dbpath= /opt/mongodb/mongodb-linux-x86_64-4.0.22/data
#日志文件存放路径
logpath= /opt/mongodb/mongodb-linux-x86_64-4.0.22/log/mongodb.log
#使用追加的方式写日志
logappend=true
#不以守护程序的方式启用,即不在后台运行
fork=true
#最大同时连接数
maxConns=100
#不启用验证
noauth=true
#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)
journal=true
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
#storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
#这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
bind_ip = 0.0.0.0
9、给目录授权
[root@master ~]# chmod 755 -R /opt/mongodb/
10、编辑系统配置文件
[root@master ~]# vim /etc/profile
11、编辑、写入内容
export MONGODB_HOME="/opt/mongodb/mongodb-linux-x86_64-4.0.22"
export PATH=$PATH:$MONGODB_HOME/bin
12、使配置的系统环境变量生效
[root@master ~]# source /etc/profile
13、查看 MongoDB 版本
[root@master ~]# mongod -v
14、MongoDB 服务启动(根据自己需要选择启动形式)
# 控制台启动
[root@master ~]# mongod -f /opt/mongodb/mongodb-linux-x86_64-4.0.22/conf/mongodb.conf
# 后台启动
[root@master ~]# nohup mongod -f /opt/mongodb/mongodb-linux-x86_64-4.0.22/conf/mongodb.conf &
15、查看服务的启动情况
[root@master ~]# netstat -lntp
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 2165/mongod
16、进入 MongoDB 的命令行创建数据库(此处我没设置密码,生产、开发过程中建议设置密码)
[root@master ~]# mongo
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
> use yapi;
switched to db yapi
> db;
yapi
17、MongoDB 其他安装、操作方式
docker 安装
// 1.docker 环境配置(略)
// 2.运行mongo服务,因为是测试所以也不设置用户名密码了
docker run -d --name yapi-mongo -p 27017:27017 mongo
// 3.进入mongo服务
docker exec -it yapi-mongo bash
// 4.进入mongo交互命令环境
mongo
// 5.创建名为yapi的DB,这个在可视化部署用得上
use yapi
// 6.查看所有DB
show dbs
五、内网部署 YApi
1、Nodejs环境安装
参考 javascript:void(0)
其他参考 官网
sudo yum install gcc-c++ make
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs
2、方式一
2.1、npm 安装 yapi
[root@master ~]# npm install -g yapi-cli --registry https://registry.npm.taobao.org
# 进行初始化
[root@master ~]# yapi server
在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
2.2、创建系统目录,来存放 yapi 安装文件
[root@master ~]# mkdir -p /opt/util/my-yapi
2.3、浏览器录入 http://【 你服务器的 IP 】:9090/
YApi 平台初始化
(1)选择版本、公司名称、部署在系统中的绝对路径
(2)YApi 平台的端口
(3)MongoDB 数据库所在服务的 IP
(4)MongoDB 数据库服务的端口
(5)MongoDB 数据库中创建的数据库(存放 YApi 使用过程中的所有数据)
(6)如果 MongoDB 中设置了密码,则要填写相应的数据库认证
2.4、开始部署(需要几分钟)
2.5、部署完毕
控制台信息
2.6、初始化管理员账号成功,账号名:“admin@admin.com”,密码:“ymfe.org”
部署成功,请切换到部署目录,输入: “node vendors/server/app.js” 指令启动服务器, 然后在浏览器打开 http://【YApi 服务器 IP】:3000 访问
2.7、进入 YApi 的系统部署目录 /opt/util/my-yapi/ 查看目录文件
[root@master ~]# cd /opt/util/my-yapi/
[root@master my-yapi]# ll
总用量 8
-rw-r--r-- 1 root root 362 1月 30 01:04 config.json
-rw-r--r-- 1 root root 0 1月 30 01:05 init.lock
drwxr-xr-x 2 root root 24 1月 30 01:05 log
drwxr-xr-x 10 root root 4096 1月 30 01:05 vendors
2.8、查看 YApi 的配置文件信息
[root@master my-yapi]# cat config.json
{
"port": "3000",
"adminAccount": "admin@admin.com",
"db": {
"servername": "192.168.11.21",
"DATABASE": "yapi",
"port": "27017"
},
"mail": {
"enable": false,
"host": "smtp.163.com", //邮箱服务器
"port": 465, //端口
"from": "***@163.com", //发送人邮箱
"auth": {
"user": "***@163.com", //邮箱服务器账号
"pass": "*****" //邮箱服务器密码
}
}
}
2.9、配置 LDAP 登录
[root@master my-yapi]# vim config.json
{
"port": "3000",
"adminAccount": "admin@admin.com",
"db": {
"servername": "192.168.11.21",
"DATABASE": "yapi",
"port": "27017"
},
"mail": {
"enable": false,
"host": "smtp.163.com", //邮箱服务器
"port": 465, //端口
"from": "***@163.com", //发送人邮箱
"auth": {
"user": "***@163.com", //邮箱服务器账号
"pass": "*****" //邮箱服务器密码
}
},
"ldapLogin": {
"enable": true,
"server": "ldap://l-ldapt1.com",
"baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
"bindPassword": "password123",
"searchDn": "OU=UserContainer,DC=test,DC=com",
"searchStandard": "mail", // 自定义格式: "searchStandard": "&(objectClass=user)(cn=%s)"
"emailPostfix": "@163.com",
"emailKey": "mail",
"usernameKey": "name"
}
}
LDAP 登录里面的配置项含义如下:
enable 表示是否配置 LDAP 登录,true(支持 LDAP登录 )/false(不支持LDAP登录);
server LDAP 服务器地址,前面需要加上 ldap:// 前缀,也可以是 ldaps:// 表示是通过 SSL 连接;
baseDn LDAP 服务器的登录用户名,必须是从根结点到用户节点的全路径(非必须);
bindPassword 登录该 LDAP 服务器的密码(非必须);
searchDn 查询用户数据的路径,类似数据库中的一张表的地址,注意这里也必须是全路径;
searchStandard 查询条件,这里是 mail 表示查询用户信息是通过邮箱信息来查询的。注意,该字段信息与LDAP数据库存储数据的字段相对应,如果如果存储用户邮箱信息的字段是 email, 这里就需要修改成 email.(1.3.18+支持)自定义filter表达式,基本形式为:&(objectClass=user)(cn=%s), 其中%s会被username替换
emailPostfix 登陆邮箱后缀(非必须)
emailKey: ldap数据库存放邮箱信息的字段(v1.3.21 新增 非必须)
usernameKey: ldap数据库存放用户名信息的字段(v1.3.21 新增 非必须)
重启服务器后,可以在登录页看到如下画面,说明 ladp 配置成功
2.10、YApi 服务启动
# 控制台启动
[root@master my-yapi]# node vendors/server/app.js
# 后台启动( 使用 pm2 启动、管理 app.js )
[https://blog.csdn.net/llwy1428/article/details/113487584](https://blog.csdn.net/llwy1428/article/details/113487584)
2.11、我使用了控制台启动
[root@master my-yapi]# node vendors/server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/
log: mongodb load success...
2.12、查看启动状态
[root@master ~]# netstat -lntp
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 2165/mongod
tcp6 0 0 :::3000 :::* LISTEN 2376/node
3、方式二(官网)我这里没有具体操作
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录(clone 整个仓库大概 140+ M,可以通过 git clone --depth=1 https://github.com/YMFE/yapi.git vendors
命令减少,大概 10+ M)
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
1、浏览器地址栏录入 http://【YApi 服务器 IP】:3000 可进入首页
2、点击 登录 / 注册 使用管理员默认账号和密码登录
账号:“admin@admin.com”,密码:“ymfe.org”
3、引导
4、新建项目
5、项目列表
6、添加接口
7、接口列表
8、接口基本信息
9、测试集合
10、测试集合下配置要测试的已有接口
11、动态:系统操作日志
12、数据管理
13、设置—项目配置
14、设置—环境配置
15、设置—请求配置
16、设置—token配置
17、设置—全局 mock 脚本
18、设置—生产 ts services
19、设置— Swagger 同步
20、Wiki 文档管理
21、系统管理员—个人中心
22、系统管理员—个人设置
23、系统管理员—用户管理
24、非管理员注册
25、系统管理员—查看所有人员列表,管理员可修改指定人员密码等
26、系统管理员—系统信息
27、添加分组
28、给新建的小组添加新项目,按分组显示项目列表
29、对小组添加成员,可指定成员权限
30、查看小组成员列表
31、普通用户的个人设置
至此,Centos7.x YApi 私有化部署、基本操作完毕,希望能够对您有所帮助!