【Yapi】Yapi最新版详细安装步骤图文教程,避免踩坑

news/2025/2/5 12:42:38/

1. 安装 node.js

安装node.js,选择版本node-v12.16.1-x64.msi
一直点击下一步就好,路径默认C盘就好,不需要做修改。

2. 安装MongDB

下载mongodb-win32-x86_64-2012plus-4.2.3-signed.msi,安装

选择complete完整的安装模式:

注意将MongoDB作为服务安装,同时要记录下数据库data的安装目录和日志的安装目录

MongoDB安装路径
C:\Program Files\MongoDB\Server\4.2\data
MongoDB日志存储路径
C:\Program Files\MongoDB\Server\4.2\log\

安装完成后的MongoDB需要进行进一步配置,需要配置db文件夹和log文件夹,分别用来存储数据文件和日志文件。这两个文件夹你可以使用以管理员权限运行的cmd命令行窗口进行创建,也可以直接到指定目录下鼠标右键进行创建。

我在这里就使用命令行的方式进行创建了:
首先使用管理员模式运行cmd窗口,然后用cd \ 命令回到根目录,在根目录下建立data文件夹,并在data文件夹内建立db和log文件夹

还需要再配置一个后缀为.cfg的文件(其实就是配置文件config的缩写),那么在该文件中写入以下路径即可:

systemLog:destination: filepath: c:\data\log\mongod.log
storage:
dbPath: c:\data\db

将刚刚的配置文件复制到MongoDB的安装目录里,放在4.2的目录下,提示需要管理员权限,点击继续即可:
C:\Program Files\MongoDB\Server\4.2\

进入MongoDB的bin目录,并把bin目录的路径复制下来:
C:\Program Files\MongoDB\Server\4.2\bin

打开刚刚的cmd命令行窗口,切换到这个bin目录路径下

然后在当前路径下敲击以下命令,回车运行,看到MongoDB的服务启动并有相应的端口号和路径即可,然后Ctrl + c强制停止一下:
mongod --dbpath C:\data\db

强制停止之后,需要再输入以下命令来重新执行配置文件:

mongod.exe --config “C:\Program Files\MongoDB\Server\4.2\mongod.cfg” --install

简单测试一下MongoDB,输入mongo:

至此,MongoDB数据库安装完成,此时未添加环境变量,将bin目录加入环境变量即可任意目录进入mongodb。

3. 命令行部署Yapi

本文根据官网命令行部署Yapi,采用可视化部署会报node.js的错误,所以不推荐使用可视化部署。可视化部署报错如下:

(node: 21108)UnhandledPromiseRejectionWarning: Error: read_ECONNRESETat TCP. onStreamRead (internal/stream_base_commons.js:205:27)
(node: 21108)UnhandledPromiseRejectionWarning: Unhandled promise rejection.

下面开始命令行部署:

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 //复制完成后请修改相关配置

注意按官网教程复制config_example.json到上一层目录改名为config.json后,需要将账号密码全部删除,否则会报以下错误:

error: MongoNetworkError: Authentication failed., mongdb Authentication failed log: mongodb load success...
(node: 19048) UnhandledPromiseRejectionWarning: Error: cannot read property 'collection' of undefinedat D:\yapi\yapi-master\server\install.js:151:13


此处如果想增加数据库权限认证,config.json中添加账号密码请看第4节。

然后执行

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配置的端口},初次运行会有个编译的过程,请耐心等候

4. MongDB添加账号密码认证

MongDB的账号密码认证,首先需要建立管理员账号密码,然后建立一个普通用户读写Yapi的数据库

# 进入
mongo
# 查看数据库
show dbs
# 创建管理员账号
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
# 验证第3步用户添加是否成功,db.auth()方法理解为用户的验证功能
db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。
# 退出系统
exit
# 安装目录下修改MongDB配置
sudo vi /opt/MongDB/mongdbServer/bin/mongod.conf
# 结尾添加两行,注意缩进,缩进参照配置文件其他配置。缩进错误可能第6步重启不成功。
security:authorization: enabled 
# 重启mongodb 
sudo service mongod restart
# 进入mongodb,用第3步的管理员账户登录,用该账户创建其他数据库管理员账号
use admin
db.auth("useradmin", "adminpassword") # 选择创建数据库最高权限账号或者读写账户管理yapi数据库
# 新建你需要管理的mongodb 数据的账号密码。
# roles:dbOwner代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等
db.createUser({ user: "yapi", pwd: "yapi", roles: [{ role: "dbOwner", db: "yapi" }] })
# 新建数据库读写账户db.createUser({ user: "yapi1", pwd: "yapi1", roles: [{ role: "readWrite", db: "yapi" }] })

mongod.conf配置文件:
config.json配置文件:

5. 访问网站

http://127.0.0.1:3000/ 使用账号 密码登录即可

6. 后台永久运行

如果是内网部署需要修改npmrc配置文件

# 查看配置文件位置,结果的userconfig即为npmrc位置,默认为/root/.npmrc
npm config list

安装forever实现后台运行

# 安装forever
npm install forever -g  
# 添加forever到环境变量
ln -s /opt/node/node-v12.22.12-linux-x64/lib/node_modules/forever/bin/forever /usr/local/bin/forever
# server目录下启动应用
forever start app.js
# 关闭应用
forever stop app.js  
# 重启所有应用
forever restartall 

7. 常见问题

报错address already in use 0.0.0.0:3000


查找端口号对应的PID

lsof -i:3000

杀掉进程

kill -9 【PID】

http://www.ppmy.cn/news/37984.html

相关文章

Windows安装Anaconda使用教程

主要介绍在 windows 11 系统中安装 Anaconda3 的详细过程 下载 Anaconda 官网下载地址:https://www.anaconda.com/products/distribution 目前最新版本是 python 3.10,默认下载也是 Python 3.10 安装 安装较为简单,基本都是下一步&#…

基于 Stable Diffusion 一键 AI 作画:什么“小镇做题家”?人人都是艺术家

文章目录前言一、西方艺术简史1.1、古典艺术时期1.2、现代艺术时期1.3、后现代艺术时期二、数字艺术的诞生和发展2.1、数字艺术的诞生2.2、数字艺术下的行业细分2.3、数字作品的创作过程2.4、AI 作画诞生三、Stable Diffusion 文字生成图像3.1、实验环境准备3.2、什么是 Stable…

Andriod ART虚拟机 启动和初始化

前言 之前整理了一系列Dalvik虚拟机的关于堆内存和GC的文章,轮到对ART内存进行分析优化了,继续整理输出一波,本篇为ART虚拟机系列的第一篇,介绍ART虚拟机的启动和初始化。 本ART系列基于7.0代码分析。 ART启动 app_main启动 f…

【新2023Q2押题JAVA】华为OD机试 - 最长合法表达式

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:最长合法表达式 题目 提取字…

Redis第十讲 Redis之Hash数据结构Dict-rehash扩容操作

Rehash 执行过程 字典的 rehash 操作实际上就是执行以下任务: 创建一个比 ht[0]->table 更大的 ht[1]->table ;将 ht[0]->table 中的所有键值对迁移到 ht[1]->table ;将原有 ht[0] 的数据清空,并将 ht[1] 替换为新的 ht[0] ; 经过以上步骤之后, 程序就在不改…

第十二届蓝桥杯省赛第二场 C/C++ B组 编程题与详解

文章目录 一、特殊年份 1、1 题目描述 1、2 题解关键思路与解答 二、小平方 2、1 题目描述 2、2 题解关键思路与解答 三、完全平方数 3、1 题目描述 3、2 题解关键思路与解答 四、负载均衡 4、1 题目描述 4、2 题解关键思路与解答 五、国际象棋 5、1 题目描述 5、2 题解关键思路…

scala匿名函数

我们在使用scala的时候经常会碰到>写法 官方文档给出的解释是:>箭头左边的元组是参数列表,右侧的表达式的值是返回的值 同时>在scala中代表匿名函数,表示创建了一个函数实例 所有的函数在scala中都是object 实例形式&#xff1a…

在职阿里6年,一个29岁女软件测试工程师的心声

简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…