一、基本信息

 

二、工具、环境

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)

四、MongoDB v4.0.22 安装部署

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

记一次 Centos7.x YApi 私有化部署_经验分享
4、进入安装包所在目录

[root@master ~]# cd /opt/mongodb/

5、解压缩安装文件、查看文件目录

# 解压缩文件
[root@master mongodb]# tar zxf mongodb-linux-x86_64-4.0.22.tgz

记一次 Centos7.x YApi 私有化部署_mongodb_02
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

记一次 Centos7.x YApi 私有化部署_服务器_03
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 中设置了密码,则要填写相应的数据库认证
记一次 Centos7.x YApi 私有化部署_经验分享_04
2.4、开始部署(需要几分钟)
记一次 Centos7.x YApi 私有化部署_经验分享_05
2.5、部署完毕
记一次 Centos7.x YApi 私有化部署_centos_06
控制台信息
记一次 Centos7.x YApi 私有化部署_服务器_07
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 可进入首页
记一次 Centos7.x YApi 私有化部署_mongodb_08
2、点击 登录 / 注册 使用管理员默认账号和密码登录
账号:“admin@admin.com”,密码:“ymfe.org”
记一次 Centos7.x YApi 私有化部署_mongodb_09
3、引导
记一次 Centos7.x YApi 私有化部署_服务器_10
记一次 Centos7.x YApi 私有化部署_mongodb_11
记一次 Centos7.x YApi 私有化部署_centos_12
记一次 Centos7.x YApi 私有化部署_经验分享_13
4、新建项目
记一次 Centos7.x YApi 私有化部署_服务器_14
5、项目列表
记一次 Centos7.x YApi 私有化部署_centos_15
6、添加接口记一次 Centos7.x YApi 私有化部署_经验分享_16
7、接口列表
记一次 Centos7.x YApi 私有化部署_centos_17
8、接口基本信息
记一次 Centos7.x YApi 私有化部署_node.js_18
9、测试集合
记一次 Centos7.x YApi 私有化部署_mongodb_19
10、测试集合下配置要测试的已有接口
记一次 Centos7.x YApi 私有化部署_mongodb_20
记一次 Centos7.x YApi 私有化部署_mongodb_21
11、动态:系统操作日志
记一次 Centos7.x YApi 私有化部署_mongodb_22
12、数据管理
记一次 Centos7.x YApi 私有化部署_服务器_23
13、设置—项目配置
记一次 Centos7.x YApi 私有化部署_node.js_24
14、设置—环境配置
记一次 Centos7.x YApi 私有化部署_服务器_25
15、设置—请求配置
记一次 Centos7.x YApi 私有化部署_node.js_26
16、设置—token配置
记一次 Centos7.x YApi 私有化部署_服务器_27
17、设置—全局 mock 脚本
记一次 Centos7.x YApi 私有化部署_mongodb_28
18、设置—生产 ts services
记一次 Centos7.x YApi 私有化部署_node.js_29
19、设置— Swagger 同步
记一次 Centos7.x YApi 私有化部署_mongodb_30
20、Wiki 文档管理
记一次 Centos7.x YApi 私有化部署_经验分享_31
记一次 Centos7.x YApi 私有化部署_node.js_32
21、系统管理员—个人中心
记一次 Centos7.x YApi 私有化部署_mongodb_33
22、系统管理员—个人设置
记一次 Centos7.x YApi 私有化部署_node.js_34
23、系统管理员—用户管理
记一次 Centos7.x YApi 私有化部署_node.js_35
24、非管理员注册
记一次 Centos7.x YApi 私有化部署_mongodb_36
25、系统管理员—查看所有人员列表,管理员可修改指定人员密码等
记一次 Centos7.x YApi 私有化部署_mongodb_37
26、系统管理员—系统信息
记一次 Centos7.x YApi 私有化部署_mongodb_38
27、添加分组
记一次 Centos7.x YApi 私有化部署_centos_39
28、给新建的小组添加新项目,按分组显示项目列表
记一次 Centos7.x YApi 私有化部署_mongodb_40
29、对小组添加成员,可指定成员权限
记一次 Centos7.x YApi 私有化部署_服务器_41
30、查看小组成员列表
记一次 Centos7.x YApi 私有化部署_经验分享_42
31、普通用户的个人设置
记一次 Centos7.x YApi 私有化部署_centos_43

至此,Centos7.x YApi 私有化部署、基本操作完毕,希望能够对您有所帮助!