Linux上搭建YApi

  YApi是http接口管理和测试的重要工具,其作用相当于原来用的postman,但是比postman有更多的功能,本篇文章主要介绍如何在linux环境中快速的安装(利用yum命令安装)和部署YApi

一、nodejs 安装

1.1 下载nodejs包

yum install -y nodejs 
yum install -y npm

安装完成后可以用 node -v命令查看安装是否成功
在这里插入图片描述

二、安装MongoDB

2.1、添加mongodb源文件,在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件

touch /etc/yum.repos.d/mongodb-org.repo

2.2、在mongodb源文件中添加镜像地址

vim /etc/yum.repos.d/mongodb-org.repo

内容如下:

[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

2.3、使用yum安装MongoDB

yum install -y mongodb-org

2.4、验证

执行如下命令,验证是否安装成功

rpm -qa |grep mongodb
rpm -ql mongodb-org-server

执行如下结果代表安装成功,这里也可以看到安装的位置
在这里插入图片描述

2.5、启动MongoDB

service mongod start

如果出现以下错误
在这里插入图片描述
解决方法如下:
1、首先将mongo设置为服务
编辑/usr/lib/systemd/system/mongod.service文件,

 vim /usr/lib/systemd/system/mongod.service

在文件中添加如下内容

[Unit]
Description=mongodb database[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid[Install]
WantedBy=multi-user.target

2、建立链接

ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/

3、重新加载systemctl

systemctl daemon-reload

4、修改文件权限
依次执行如下命令

cd /tmp
ls -l *.sock

将上一步中列出的文件执行如下命令增加权限

chown mongod:mongod mongodb-27017.sock

5、然后重新启动,

service mongod start

如下结果代表启动成功
在这里插入图片描述
在这里插入图片描述

2.6、设置开机启动

chkconfig mongod on

执行结果
在这里插入图片描述

2.7 配置远程访问

编辑文件/ect/mongod.conf

vim /etc/mongod.conf

将图中所示的行注释掉
在这里插入图片描述
重新启动mongodb

service mongod restart

在这里插入图片描述

三、安装git

yum -y install git

安装完成后可以执行命令git --version查看版本
在这里插入图片描述

四、部署YApi

4.1、安装YApi

npm install -g yapi-cli --registry https://registry.npm.taobao.org

如果出现如下错误
在这里插入图片描述
可以执行如下命令升级npm

npm update -g npm

然后重新执行如下命令安装YApi

npm install -g yapi-cli --registry https://registry.npm.taobao.org

4.2、启动YApi

这里的启动只是部署的启动,所以不需要后台启动,部署完成后就可以关了

yapi server 

如果找不到yapi命令,则执行如下命令

ln -s /usr/local/node-v16.14.0-linux-x64/bin/yapi /usr/bin/yapi

其中/usr/local/node-v16.14.0-linux-x64/bin/yapi是我机器上yapi的安装路径,如果不一致,需要换成自己的路径

4.3、部署YApi

首次启动需要在网页端部署一下YApi
在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
如果是云主机,需要打开9090端口的防火墙

在这里插入图片描述
按照自己的需求填写完信息后,点击底部的开始部署按钮部署
如果部署的时候后端直接退出,并且启动时有这样的告警
在这里插入图片描述
原因是node的版本太高了,需要降低一下node的版本
依次执行如下命令切换node的版本

wget https://nodejs.org/dist/v12.10.0/node-v12.10.0-linux-x64.tar.xztar -xvf node-v12.10.0-linux-x64.tar.xz mv node-v12.10.0-linux-x64 /usr/local/rm -rf /usr/bin/node
rm -rf /usr/bin/npmln -s  /usr/local/node-v12.10.0-linux-x64/bin/node /usr/bin/node
ln -s  /usr/local/node-v12.10.0-linux-x64/bin/npm /usr/bin/npm

然后重新执行yapi server,重新部署
出现如下信息,表示部署成功
在这里插入图片描述

4.4、启动项目

/root/my-yapi是我的部署目录,需要切换成自己的

cd /root/my-yapi
node vendors/server/app.js

在浏览器输入地址http://127.0.0.1:3000/
在这里插入图片描述
这种办法启动的 项目,当远程连接器(如xshell)退出就会退出项目,解决方案就是用pm2启动
1、安装pm2

npm install -g pm2

2、配置连接pm2

ln -s /usr/local/node-v12.10.0-linux-x64/bin/pm2 /usr/bin/pm2

pm2的路径需要自己查找一下(find -name “pm2”),
3、在项目添加配置文件my-yapi_processes.json
/root/my-yapi是我的部署路径,要找到自己对应的部署路径

cd /root/my-yapi/
vim my-yapi_processes.json

my-yapi_processes.json的内容如下

{"apps" : [{"name" : "my-yapi","script": "/root/my-yapi/vendors/server/app.js","cwd": "./","watch":["server","static","test","exts","common"]}]
}

4、启动服务

pm2 start /root/my-yapi/my-yapi_processes.json

在这里插入图片描述

关闭服务命令如下

pm2 stop /root/my-yapi/my-yapi_processes.json

后记
  个人总结,欢迎转载、评论、批评指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Harbor配置同步规则删除不掉

【问题原因】 harbor上主从两个仓库,配置同步规则时,定时任务配置太频繁,导致规则修改,删除都失败。 【问题现象】 点击修改后保存,页面报internal server error的错。 【问题排查】 docker ps | grep harbor 查看…

仓库管理软件有哪些比较好用?

“仓库管理软件有哪些比较好用?” “好用,却不一定适合。” 有时候,不是某个仓库管理软件不好用,而是它不适合你们企业。 制造业企业的仓库管理场景,随着制造业企业规模的扩大,逐步精细化,企…

JAVA基础学习笔记-day12-泛型

JAVA基础学习笔记-day12-泛型 1. 泛型概述1.1 泛型的引入 2. 使用泛型举例2.1 集合中使用泛型2.2 相关使用说明 3. 自定义泛型结构3.1 泛型的基础说明3.2 自定义泛型类或泛型接口3.2.1 说明3.2.2 注意 3.3 自定义泛型方法3.3.1 说明 4. 泛型在继承上的体现5. 通配符的使用5.1 通…

C语言KR圣经笔记 5.6指针数组;指针的指针

5.6 指针数组;指针的指针 因为指针本身也是变量,所以它们也能像其他变量一样保存在数组里面。我们写个程序来说明,该程序将一些文本行按照字母顺序排列,算是 UNIX 程序 sort 的精简版本。 在第三章中,我们介绍了对一…

10-链表-删除排序链表中的重复元素 II

这是链表的第10篇算法,这是上一篇文章的加强版,力扣链接。 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,…

Facebook选品方法大揭秘,这几个最畅销类目别错过!

现在越来越多的卖家开始做社媒电商,其中很多人都想在 Facebook 这个平台上分一杯羹,而 Facebook选品对于这些商家来说非常重要。俗话说,七分靠选品,三分靠运营,想成功入局 Facebook,选品选的好&#xff0c…

肠道重要属——芽孢杆菌属,益生与病原双标签

谷禾健康 芽孢杆菌属(Bacillus)是革兰氏阳性、杆状、芽孢杆菌科细菌的一个属,属于厚壁菌门。 芽孢杆菌属物种可以是专性需氧微生物(依赖氧气)或兼性厌氧微生物(具有需氧或厌氧的能力)。当使用或存在氧气时,它们的过氧化氢酶检测呈…

Stable Diffusion汉化插件

今天为大家介绍Stable Diffusion的两种UI汉化包,一种是汉化包,就中文界面,方便大家对于繁杂的参数的模型的操作,一种是中英文对照界面,在中文提示下,同时显示英文,不但方便设置也同时学习了英文…

MySQL进阶篇(一)存储引擎

一、MySQL 体系结构 (1) 连接层 最上层是一些客户端和链接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念&#xff…

如何通过内网穿透实现无公网IP远程访问内网的Linux宝塔面板

文章目录 一、使用官网一键安装命令安装宝塔二、简单配置宝塔,内网穿透三、使用固定公网地址访问宝塔 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…

这款IDEA插件真的爽,白嫖真香

Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里…

XD6500S一款串口SiP模块 射频LoRa芯片 内置sx1262

1.1产品介绍 XD6500S是一款集射频前端和LoRa射频于一体的LoRa SIP模块系列收发器SX1262 senies,支持LoRa⑧和FSK调制。LoRa技术是一种扩频协议优化低数据速率,超长距离和超低功耗用于LPWAN应用的通信。 XD6500S设计具有4.2 mA的有效接收电流消耗&#…

DevOps(10)

目录 56.Docker的架构? 57.Docker镜像相关操作有哪些? 58.Docker容器相关操作有哪些? ​编辑59.如何查看Docker容器的日志? 60.如何启动Docker容器?参数含义? 61.如何进入Docker后台模式?有…

Open3D将聚类结果显示或者保存

将聚类结果按大小排序,并取出最大的4个结果 import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt#坐标 mesh_coord_frame o3d.geometry.TriangleMesh.create_coordinate_frame(size355, origin[0, 0, 0]) #mesh_coord_frame…

2023APMCM亚太数学建模C题 - 中国新能源汽车的发展趋势(2)

五.问题二模型建立和求解 5.1 问题二模型建立和求解 针对题目二,题目要求收集中国新能源电动汽车行业发展数据,建立数学模型描述,并预测未来十年的发展。由于在第一文中,我们已经收集了一定的新能源行业发展数据&…

【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…

数据分析求职-岗位介绍

这是咱们干货开始的第一篇文章,后续我尽量会保持日更的节奏和大家做分享~ 在未来所有分享的内容展开之前,咱们有必要先彻底、深入地了解下数据分析这个岗位。如果你还在犹豫是否要走数据分析的路,或者你已经拿了数据分析的offer想了解下将来…

插入排序详解!!!(简单排序),基本功排序C语言版

目录 1.什么是插入排序 2.插入排序的源代码 3.源代码详解 1.什么是插入排序 这是一个插入排序的流程图,插入排序 很像我们玩斗地主,玩牌,斗地主在开始前,我们是不是要给我们手上的牌排序啊,假设我们理牌有一个规矩就…

CLM陆面过程模式实践技术应用

NCAR陆面模式CLM (Community Land Model)是地球系统模式CESM (Community Earth System Model)中的陆面过程模式分量,是在结合了BATS、LSM和IAP94等众多陆面模式的优点后,加入水文过程而开发出的综合性陆面模式,是目前国际上发展最为完善且得到…

MySQL-DDL

DDL是数据定义语言,用来定义数据对象(数据库,表,字段) 数据库操作: 1.查询: 查询所有数据库:SHOW DATABASES; 查询当前数据库:SELECT DATABASE(); 2.创建: C…