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.xz

tar -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/npm

ln -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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iPaaS与ETL:了解它们的主要区别

平均每个组织使用 130 多个应用程序,这一数字同比增长 30%。 随着公司试图充分利用其不断增长的应用程序生态系统,他们已经转向可以集成它们和/或其数据的工具。两个常用选项包括集成平台即服务 (iPaaS) 和提取、传输、加载 &…

pytorch08:学习率调整策略

目录 一、为什么要调整学习率?1.1 class _LRScheduler 二、pytorch的六种学习率调整策略2.1 StepLR2.2 MultiStepLR2.3 ExponentialLR2.4 CosineAnnealingLR2.5 ReduceLRonPlateau2.6 LambdaLR 三、学习率调整小结四、学习率初始化 一、为什么要调整学习率&#xff…

宝宝洗衣机哪个牌子质量好?好用的小型洗衣机推荐

当婴儿的到来,确实会给家庭带来许多变化,就好比如对于宝宝相关衣物的清洗需求。对于新生儿及婴幼儿的衣服,一般都要给予特殊的照顾与清洗,以保证不含细菌及过敏原。尤其是刚刚出生的婴儿,这时候宝宝们的皮肤很是幼嫩。…

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 通…

MySQL面试题汇总

常规: 1、数据库三大范式 1NF : 表中字段的数据不可再拆分。(原子性)2NF : 在满足第一范式的情况下,遵循唯一性,消除部分依赖。即,表中任意一个主键或任意一组联合主键,可以确定除该主键外的所有的非主键值。(一个表…

(适趣AI)Vue笔试题

📑前言 本文主要是【Vue】——(适趣AI)Vue笔试题的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …

Android studio报错误提示 Some Kotlin libraries attached to this project 问题解决方案

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 Android新建项目后,报以下错误 错误提示内容为: 这个项目附带的一…

pygame学习(二)——绘制线条、圆、矩形等图案

导语 pygame是一个跨平台Python库(pygame news),专门用来开发游戏。pygame主要为开发、设计2D电子游戏而生,提供图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模…

Spring Boot 与 Spring 框架的区别

一、前言 Spring Boot 和 Spring 框架是由 Spring 项目提供的两个关键的技术栈,它们在 Java 开发中扮演着不同的角色。在阐述其区别之前,我们先大致了解下这两个框架 二、Spring 框架 1、背景 Spring 框架是一个全栈的企业应用开发框架,起…

营销的尽头是矩阵!如何通过小魔推短视频矩阵快速破圈?

“ 营销的尽头是矩阵! 相信很多做互联网的朋友都听过这么一句话 在抖音上我们看到过大批的博主,都是通过矩阵的方式火遍全网,就比如张琦、小杨哥等等,矩阵的方式适用于大多数的实体品牌,以及个人IP 等&#xff0c…

DevOps(3)

目录 11.描述root账户? 12.如何在发出命令时打开命令提示符? 14.Linux系统下交换分区的典型大小是多少? 15.什么是符号链接? 11.描述root账户? root账户就像一个系统管理员账户,允许你完全控制系统。 …

目标跟踪算法中的卡尔曼滤波学习

在使用多目标跟踪算法时,接触到卡尔曼滤波,一直没时间总结下,现在来填坑。 1. 背景知识 在理解卡尔曼滤波前,有几个概念值得考虑下:时序序列模型,滤波,线性动态系统 1. 时间序列模型 时间序…

AspectJ入门(二)— 应用

AspectJ便于调试、测试和性能调整工作。定义的行为范围从简单的跟踪到分析,再到应用程序内部一致性到测试。AspectJ可以干净地模块化这类功能,从而可以在需要时轻松地启用和禁用这些功能。 1 基础 本节将继续介绍AspectJ到一些基础功能,为后…

负载均衡案例:如何只用2GB内存统计20亿个整数中出现次数最多的整数

基于python实现。 如果是常规的小型文件&#xff0c;我们可以迅速地想到要建立字典。 以数字为key&#xff0c;以数字的出现次数为value&#xff0c;建立<int,int>类型的键值对存入字典&#xff0c;然后使用 max 函数结合字典的 items 方法来找到一个字典中 value 最大的…

2023 波卡年度报告选读:Polkadot SDK 与开发者社区

原文&#xff1a;https://dashboards.data.paritytech.io/reports/2023/index.html#section6 编译&#xff1a;OneBlock 编者注&#xff1a;Parity 数据团队发布的 2023 年 Polkadot 年度数据报告&#xff0c;对推动生态系统的关键数据进行了深入分析。报告全文较长&#xff…

一键减低PNG像素,轻松优化图片质量!

在数字时代&#xff0c;我们每天都要处理大量的图片文件&#xff0c;从网站设计、广告素材到社交媒体图片等。PNG作为一种常用的无损压缩格式&#xff0c;在保证图片质量的同时&#xff0c;也占用了较大的存储空间。为了优化存储空间和提高加载速度&#xff0c;我们需要对PNG图…

数据结构学习笔记——查找算法中的树形查找(B树、B+树)

目录 前言一、B树&#xff08;一&#xff09;B树的概念&#xff08;二&#xff09;B树的性质&#xff08;三&#xff09;B树的高度&#xff08;四&#xff09;B树的查找&#xff08;五&#xff09;B树的插入&#xff08;六&#xff09;B树的删除 二、B树&#xff08;一&#xf…

科技助力教育:数字化如何改变家校社协同育人?

近年来,随着社会的快速发展,教育的责任已不再仅局限于学校。家庭、学校和社会协同育人理念,正成为促进教育高质量发展的关键要素。 2023年初,教育部等十三部门联合印发《关于健全学校家庭社会协同育人机制的意见》,提出到“十四五”时期末,形成更加完善的由“学校积极主导、家…

Excel如何将单元格设为文本

文章目录 一、打开excel文件二、选中单元格三、右键设置单元格格式四、设置界面选择文本后点确定五、其他问题 在caa开发过程中遇到从CATUnicodeString转成CString时&#xff0c;通过SetItemText写入将ID号写入单元格&#xff0c;无法保存ID号中的数字0&#xff0c;故将单元格格…

统信UOS_麒麟KYLINOS修改图标显示名称

原文链接&#xff1a;统信UOS/麒麟KYLINOS修改图标显示名称 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在统信UOS及麒麟KYLINOS操作系统上如何修改软件的名称。这种自定义可以帮助您更快地识别和访问常用的应用程序&#xff0c;也可以使您的桌面环境更加个性…