Mac Yapi 内网安装保姆级步骤
前言
最近有个同事问我Yapi的idea插件上传接口失败的原因,然后我自己下载了Easy Yapi插件进行测试,发现插件设置面板中无Yapi的配置,也就无法复现失败的原因,心血来潮那就本地安装一个Yapi呗,所以有了这边文章的来源,我会一步步的将我安装步骤和出现问题后解决方法都附上,各位如果安装的时候,也出现问题,请对号入座。
正文
打开Yapi的官方github地址 官方Yapi github地址
环境要求是 nodejs和mongodb而且有版本要求,这里先透露点这个版本号有很大的误区,大坑。
安装nodejs
这里先介绍2个node的版本管理工具,npm 和n
npm用过nodejs的知道,用于管理nodejs的版本,一般我们无需单独安装,他会随着我们安装nodejs的时候一起安装,这里我们通过另外一个版本管理工具n,因为n在版本切换和下载太好用,太方便
n
n是node的一个模块,安装起来也是很方便的,通过下面命令执行
$ sudo npm install -g n
安装完以后,我们查看版本号通过执行下面命令
n --version
我本地的版本号是 9.0.0 如下图所示
这里只介绍几个常用的命令
安装或者切换nodejs版本
n 版本号
列出当前已经安装的 nodejs
n ls
为了安装yapi,我摸索下载这么多版本
安装nodejs
通过上面的介绍,这里安装nodejs简直太方便了,根据官网nodejs要求的版本号是7.6+,那么我们这里就安装 7.6,通过执行下面命令
n 7.6.0
安装成功后,我们在安装mongodb
mongodb
下载压缩包
我是通过官方下载mongodb 压缩包,本地减压后执行的命令安装
mongodb官网社区版下载
我已经下载好了,大家如何不想去官网下载,我这里有安装包,点击下面链接下载也是比较快的mongodb下载地址
创建环境不要的文件夹
下载后进行解压,双击或者解压命令都可以,我们创建一个文件夹,将解压后的文件夹拖追过去,我是在/usr/local/下新建一个mongdb文件夹,将其放到该文件夹下。这里有一个问题,/usr/local文件默认没有读写权限的,所以我们接下来执行下面命令对其赋权
sudo chown 自己电脑名称 /usr/local/mongodb
执行后,输入密码回车就可以了。
创建data、log文件夹,随便找个有权限的地址创建即可,我是在mongodb当前文件夹下创建的。如下图所示
同样创建log 文件,如下图所示
配置环境变量
打开base_profile文件,执行步骤如下图所示
执行完1、2步骤后,在base_profile文件里添加
export PATH=/usr/local/mongodb/bin:${PATH}
/usr/local/mongodb 路径换成你安装mongodb自己的路径,保存后文件后在执行步骤4即可。
到了验证环境变量是否生效的时候了,通过执行下面命令
mongod -v
如果执行后报错,那么我们将错误信息,复制出来,在信息里会找到如下段错误信息
mongodb-27017.sock","error":"Permission denied"}}
没有权限,那么我们执行 sudo mongod -v ,一般就没问题了
启动mongdb
依次执行如下命令,我们为了避免权限不足的情况,在执行的时候加上了sudo
如果执行报错,一般是 data权限不足,将该文件夹重新赋读写权限即可。
启动后默认是无库,无用户名,无密码,我们验证是否启动成功,用客户端工具链接验证,我这里借住的是datagrip工具,如下图所示
点击下方的测试链接,如果显示成功,那么在点击OK。
新开一个connsole,执行 use yapi命令,创建yapi需要的库。
安装Yapi
到这里才算是正真安装我们需要的软件了。
下载包
依次执行下面命令
npm install -g yapi-cli --registry https://registry.npm.taobao.orgyapi server
执行完会看到控制台打印出下面这行 http://0.0.0.0:9090/
安装
安装Yapi 从官网看到,有2种方式,如下图
可视化部署和命令行部署,这里强烈建议采用命令行部署,原因都是泪。
采用可视化部署的时候,大家看下面几张报错情况
开始我node的版本号是最新的,然后抱上面错,原因是nodejs的版本号太高了,那么将其切换到环境要求的最低版本 7.6.0,执行后
没有结果了。
从控制台看到说是 nodejs的版本号太低了,我j将其升级到14.2.0 的时候,又开始提升npm 版本太低,
当我讲npm升级到最新的时候,又开始提示node 版本太低,nodejs和npm的版本号直接的对应的对应关系太难找了,和官方要求的7.6.0很有出入,最后将node版本定格在12.18.2 ,npm的版本号 6.14.5的时候,终于不再包这个错,而且这个时候yapi的安装版本号要选择 1.8.8。
你们以为这样就可以了吗?太小瞧困难了,不再抱版本号的问题,但是链接mongodb的时候,又报错了,如下图所示:
Error: (node:90198) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
大概意思是提示让 useUnifiedTopology: true参数加到mongo客户端调用的构造方法中。这不就简单么,我们找到链接的代码,将其加入到构造方法中即可,又开始找代码中,终于经过 install.js、yapi.js、util/db.js关联文件找到链接mongodb的构造方法定义在db.js中,如图所示
修改配置、重启服务、开始部署,结果还是报上诉错,查看db.js的时候,发现刚刚加的配置没有了,说明这个文件是实时生成,这些就犯难了,难道要找db.js这个文件是如何生成的吗?太困难了。正当犯愁的时候,看到部署yapi还有另外一种方法。那就试试另外一种方法吧。
根据上图中的步骤,我们只要执行红框中的步骤即可,其他步骤已经在执行可视化界面的时候生成了,按照上述步骤执行又出现错误,根据错误信息,能看出来是初始化管理员账号失败,那么将mongodb user表删除后,再执行 run install --server 显示下面一段内容
幸福来的太突然了,这就成功了,有点不相信,那就试着打开链接看看,天亮了,出现了登陆界面,输入提示的用户名和密码,出现下面一幕
尽然真的可以了,幸福来的太突然了。经历了无数次失败后,采用另外一种方式部署后,竟然成功了。
总结
当前安装版本如下
nodejs:v12.18.2
n:
n --version
v9.0.0
npm :6.14.5
Yapi安装版本号:1.8.8
mongo版本号:
mongod -version
db version v6.0.1
Build Info: {
"version": "6.0.1",
"gitVersion": "32f0f9c88dc44a2c8073a5bd47cf779d4bfdee6b",
"modules": [],
"allocator": "system",
"environment": {
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
启动命令
mongo
sudo mongod --dbpath data
yapi
cd /my-yapi/vendor/server
node app.js
留言
大家在部署Yapi遇到问题,可以在下面留言,毕竟我是踩过无数次坑的人,可能比官网更能解决大家遇到的问题。
Mac Yapi 内网安装保姆级步骤相关推荐
- Frp内网穿透保姆级教程 windows内网穿透
Frp内网穿透保姆级教程 windows内网穿透 准备工作 一台具有公网ip的云服务器(我的是ubuntu) frp程序 流程 将frps放到具有公网ip的服务器上 将frpc放到需要内网穿透机器上, ...
- 内网穿透保姆级教程——内网穿透建立个人网站、远程控制
文章目录 1 什么是内网穿透? 2 实现内网穿透有什么用? 3 内网穿透具体实现步骤 3.0 需要工具:花生壳客户端.IIS功能(电脑自带) 3.1 开启Internet Information Se ...
- 星空内网穿透保姆级教程
星空内网穿透教程 免费版的限制如下图: 在这里插入图片描述 访问网址 :https://frp.starryfrp.com/ 开始使用 注册 注册很简单,填入对应的信息注册即可. 登录 注册后输入用户 ...
- Mac(Big Sur系统)安装tunnelblick(vpn)步骤
Mac(Big Sur系统)安装tunnelblick(vpn)步骤 以下流程[支持 macOS 11(Big Sur)对 Apple Silicon(ARM)Mac 的支持] 下载安装 官网下载,链 ...
- Java实现Http代理服务器通过http代理进行内网安装yum软件
Java实现Http代理服务器&通过http代理进行内网安装yum软件 1.Http代理服务器简介 2.Http代理服务器Java实现 2.1 Java源码 2.2 代码分析说明 3.通过ht ...
- win7 x86系统 内网安装 IE11
win7 x86 系统 内网安装 IE11 1.需求分析 2.前提条件 3.操作步骤 1.需求分析 不同的 web 应用,浏览器的选择是不同的,因为我们的 web 系统开发年限比较久远,是基于 IE8 ...
- pyecharts官网使用说明书---保姆级手把手教你画图版
pyecharts官网使用说明书---保姆级手把手教你画图版 1.画图脚本结构 2.参数的类型 3.参数与结构相结合 3.1图表函数 3.2add数据 3.3全局配置参数 3.4系列配置参数 4.总结 ...
- ubuntu内网安装软件
在生产环境中很少有连接外网的服务器,这里以ansible内网安装为例来介绍. 1.安装ansible(有外网) 1.ansible的安装包存在于ansible的PPA中,如果要下载PPA(个人软件包存 ...
- linux用rpm安装nginx,Linux内网安装nginx(rpm包安装方式)
然后,将下载好的rpm包放入服务器内,地址随意,进入对应目录,执行Linux命令: ( rpm -ivh rpm包的名字) rpm -ivh nginx-1.18.0-1.el7.ngx.x86_64 ...
- VMware虚拟机最新详细安装保姆级教程(2023年新版教程)
VMware最新详细安装保姆级教程(2023年新版教程) 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员.关注公众号[程序员洲洲]即可获得10G学习资料.面试笔记.大厂独家学习体系路线等-还可以加 ...
最新文章
- css 倒三角_倒三角结构:如何管理大型CSS项目
- 权威预测:2018年这十大数字化转型趋势要火!
- linux设置开机服务自动启动/关闭自动启动命令
- 测试MindMotion MM32F3277 MicroPython -2021-11-20新增PWM版本
- echarts 图标高度自适应_echarts图表盒子大小变化后,图表无法自适应
- Flink SQL解析复杂Join(转载+自己整理和补充)
- leetcode 796. 旋转字符串(Rotate String)
- Gerchberg–Saxton算法
- qq语音按住ctrl就静音怎么解决_干货!PS超实用去水印方法汇总(图文教程),可解决99%水印烦恼...
- Java/JSP中使用JDBC连接SQL Server 2000/2005
- location匹配
- 【qq语音获取好友ip】wireshark
- fio: engine libaio not loadable
- 按头安利 好看又实用的手绘图标素材看这里
- exls表格搜索快捷键_excel表格查找快捷键|excel表格的常用功能快捷键介绍
- qq病毒java代码_刚刚遭遇QQ病毒
- python葡萄酒数据集_葡萄酒质量数据集分析
- android 组件暴露风险,Activity组件暴露导致本地拒绝服务
- 【R言R语】算法工程师入职一年半的总结与感悟
- springboot 解决java.lang.ArrayStoreException