之前自己部署过 easy-mock,还专门整了篇博客 <Windows 本地安装部署 Easy Mock>,但现在大搜车已经两年多没有对 easy-mock 进行有效 commit 了,最重要的是,easy-mock 对 NodeJs@10.x 及以上的版本不支持,这就比较坑了,所以我找了一下有没有其他的 Api 管理/Mock 平台 YApi,准备以后转战 YApi 了,我把 YApi 部署到我自己的服务器上,以后就用它了。
CentOS 版本: 7.6
Nginx 版本: 1.16.1
Yapi 版本: 1.19.1
MongoDB 版本: 4.2.6
1. MongoDB 配置
1.1 配置 yum 并安装 MongoDB
MongoDB 和其他挺多直接用 yum 安装的软件不一样,它不能直接用 yum install
,这种方式安装的 MongoDB 版本很低,需要先配置一下 yum:
# 创建 yum 配置文件
vim /etc/yum.repos.d/mongodb-org-4.2.repo
# 在文件中填入以下内容,然后 :wq 退出
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
# 退出后就可以使用 yum 进行安装了
yum install -y mongodb-org
复制代码
1.2 MongoBD 常用命令
systemctl start mongod.service # 开启 MongoDB
systemctl enable mongod # 开机自启
systemctl list-unit-files|grep mongod # 查看 MongoDB 是不是开机自启
service mongod restart # 重启
service mongod stop # 停止
service mongod start # 运行
rpm -ql mongodb-org-server # 查看 MongoDB 相关文件
复制代码
1.3 MongoDB 配置
然后我们修改配置文件,让 MongoDB 在外部也可以访问
# 修改 MongoDB 配置文件
vim /etc/mongod.conf
# 找到这里,修改后 :wq
net:
port: 27017
bindIp: 0.0.0.0 # 原来是 127.0.0.1,只允许本地连接,改成 0.0.0.0 允许外部连接,如果只需要本地连接就不用改
security: # 为了安全,启用身份验证
authorization: "enabled" # disable or enabled
# 保存后重启服务
service mongod restart
复制代码
修改完配置之后,在网页上访问 <你的服务器地址>:27017
就可以访问到了,如果不修改 bindIp
的话,就只可以进行本地连接。
如果你 mongod
访问的时候抱如下的情况:
![d80659c1e731149586369d81ebbc1f64.png](https://i-blog.csdnimg.cn/blog_migrate/a84ecd799df84a6b94715a1c831c035d.jpeg)
那你需要新建一个 /data/db
数据目录 mkdir /data/db
,然后再访问就可以了。
1.4 卸载 MongoDB
这里保留一下卸载的方法,以后可能换其他方式安装 MongoDB:
systemctl disable mongod # 停止开机自启
service mongod stop # 停止服务
sudo yum erase $(rpm -qa | grep mongodb-org) # 删除安装包
sudo rm -r /var/log/mongodb # 删除日志文件
sudo rm -r /var/lib/mongo # 删除数据文件
复制代码
2. Yapi 安装部署
2.1 本地部署
首先安装官方提供的 yapi-cli
工具,顺带安上 pm2
回头启服务的时候可以用来守护和管理进程:
npm install -g yapi-cli pm2 --registry https://registry.npm.taobao.org
yapi server
复制代码
然后进行可视化配置,我是下面这样配置的:
![c24ae0612a755eb1c2726354146231f5.png](https://i-blog.csdnimg.cn/blog_migrate/8e5c1a671d8f32491b3bf7971205f67e.jpeg)
点击「开始部署」,就开始 Yapi 部署的过程了,经过两三分钟的等待,看到最后几行提示了管理员账户名和密码,记下来后面有用
![516e217875df109e45867e19181e311b.png](https://i-blog.csdnimg.cn/blog_migrate/6fd10674d8c93e55d6a0300b6d25a503.jpeg)
然后
cd <部署路径> # 刚刚的配置是 /usr/share/my-Yapi
node vendors/server/app.js # 跑起来
# 推介用 pm2 跑,这里给 yapi 赋一个引用名称,以后操作方便,并设置当超过 200MB 内存上限后自动重启
pm2 start /usr/share/my-yapi/vendors/server/app.js -n yapi --max-memory-restart 500M
pm2 stop yapi # pm2 停止
pm2 list # pm2 查看运行状态
复制代码
此时可以看到 pm2 运行的脚本状态:
![444c3b7ba3271e45cdc84f4d3cc0767a.png](https://i-blog.csdnimg.cn/blog_migrate/876a96cb8ac09d644e52a8e3c2492971.jpeg)
现在到浏览器访问 <你服务器ip>:9001
(注意这里的端口是你刚刚自己设置的端口号)就可以访问到 Yapi 的服务目录了,目录看起来跟官网比较类似
![390848bc96ab2cf62d171bcb04c123f6.png](https://i-blog.csdnimg.cn/blog_migrate/a0e68740cd3a01f90f1f01303e709252.jpeg)
这样就完成了本地的部署了~
注册一个新账号,登录后就可以正常使用了。
2.2 安装 cross-request 插件
安装上 Yapi 之后,还需要在浏览器安装一个 cross-request 插件,来进行页面跨域请求。
首先我们去 https://github.com/YMFE/cross-request
仓库,下载 zip
包并解压缩。
![54601b3b58c37501503de4e73ff69d7f.png](https://i-blog.csdnimg.cn/blog_migrate/a8daafd395749d43e64cf426786f4b38.jpeg)
然后在 Chrome 右上角三个点的菜单中选择 更多工具 -> 扩展程序 -> 加载以解压的扩展程序 -> 选中压缩包内容
,记得先把右上角 开发者模式
打开。
![839f58ea1db7995b488e496227863f04.png](https://i-blog.csdnimg.cn/blog_migrate/05f1a55708836150b44e5e920e5f39dc.jpeg)
然后查看 接口 -> 运行
就可以发送命令了~
⚠️ 注意: 安装完之后,解压缩的插件文件夹不能删除!!!
后面的使用,可以参考官方文档: YApi-教程
但要提一句的是,我在将 swagger2.0 的接口文档导入 Yapi 的时候,发现出现了一点问题 ,这里给 Yapi 的仓库提了 <导入swagger2.0版本的配置文件后接口的编辑按钮点击进入空白页 · Issue #1739> 这样一个 issue,希望官方早点解决呀~
网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~
参考文档:
- Install MongoDB Community Edition on Red Hat or CentOS — MongoDB Manual
- Linux Centos 7安装MongoDB(简单!详细!)