前言

这几天终于完成了为期三个月的公司某个demo版的项目,在这期间和公司的后台因为API的事怼过无数次了,'我的接口没问题,是你请求的方式不对吧!'、'一定是你请求的参数不对'......诸如此类问题贯穿这三个月,仅仅因为我们没有一个良好的接口管理习惯,一堆省事的工具没有被利用起来,接口定义很随意基本靠口头传达。于是乎,我想YApi接口管理平台必须先用起来,再者,张鑫旭大大也在为接口管理打call,前端也应该把工具用起来。解放生产力,提高效率!

安装node

因为yapi的安装必须依赖node,centos环境安装node的各种方法google一下,千千万万种。而我还是踩到坑了,不知道为什么我根据wget安装源码的方法,失败了,当然也不是完全失败,是make的时候,等的太久,我直接ctrl+c了。还是用nvm安装吧,尽管我也不知道合不合理。请代码说话:

  • Wget下载安装nvm

     
       wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

    或者Curl

     
       curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
  • 下载完成后加入系统环境

     
       source   ~/.bashrc
  • 验证安装

     
       command -v nvm
  • 查看远程node版本

     
       nvm ls-remote
  • 安装所需版本 要求nodejs(7.6+)

     
       nvm install 10.2.1

安装mongdb

yapi依赖mongodb(2.6+,理论上可配置远程的mlab,此处安装centos的mongdb,前提是确保centos为64位。
同样安装方法也有千千万万种,这里用yum安装

  • 修改yum包管理配置

     
               vi /etc/yum.repos.d/mongodb-org-3.4.repo   // 会自动新建mongodb-org-3.4.repo文件 
  • 复制下面配置信息:

     
               [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=0
    enabled=1
  • 安装mongodb

     
               yum install -y mongodb-org   // 一路yes安装mongodb
  • 修改mongdb配置(公网可访问:127.0.0.1 => 0.0.0.0)

     
               vi /etc/mongod.conf 
  • 启动mongodb

     
           systemctl start mongod.service  // 启动mongodb

此时如果是阿里云服务器,安全组添加端口12071就能通过公网地址访问,当然此时是不安全的


此时任何一个人都能通过连接你的mongdb数据篡改你的数据,这时候试着加下验证试试,这里方法也有千千万万种,请自行google,例如:

 
mongo --port 27017

use admin

db.createUser(
{
user: "adminUser",
pwd: "adminPass",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

## 部署yapi
根据官方文档部署方法有两种,鉴于我前几天在电脑上用第一种方法安装时失败,于是就采用第二种复杂一点的方法

 
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
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配置的端口},初次运行会有个编译的过程,请耐心等候

此时只是暂时成功部署了,还要永久守护这个yapi进程,这里用到pm2

  • 安装pm2

     
         npm i pm2 -g
  • 切换到yapi的vendors目录 执行pm2 start

     
         pm2 start server/app.js  --watch

 
正常的话,应该能正常访问到,默认接口是3000

总结

至此,已经把yapi的源代码clone了一份到你自己的内网,当然,期间还是会遇到不少的坑,我遇到的主要还是mongdb认证的坑:比如认证设置不成功、config文件配置不正确之类的,甚至pm2启动yapi失败,总之多尝试多动手,自己实在不能解决再去请教大牛。

① mongdb认证获取失败


解决: 检查mongdb配置是否正确、认证设置是否成功,yapi的config文件是否配置正确

② pm2启动yapi失败,一直重启

解决:通过pm2 log查看是之前通过npm开启的服务没有结束,导致端口占用,ctrl+c之前的服务就行
前两个问题貌似都不算是坑,无非就是拦路虎

③配置好的邮箱失败


解决:那肯定是邮箱配置不对喽,重来吧!然后就继续采坑
不确定是不是网易邮箱有点问题还是怎么的,换成qq的就行,修改完config.json文件,我以为重npm run install-server就万事大吉了,其实 -->

应该是mongdb中yapi已经存在这个管理员的信息,如果admin下面没有数据的话就直接删掉这条,如果有点话就修改数据吧。我很懒,直接用mongdb compass把整个yapi都删掉了,删库跑路!

不足之处欢迎拍砖指正!

centos部署yapi爬坑记的更多相关文章

  1. CentOS部署yapi

    转载自 https://www.linuxidc.com/Linux/2018-01/150513.htm 在mongoDB添加yum源时,源路径有修改,原文中的路径404不可用 一.准备工作 1.1 ...

  2. .NET Core爬坑记 1.0 项目文件

    前言: 之所以要写这个系列是因为在移植项目到ASP.NET Core平台的过程中,遇到了一些“新变化”,这些变化有编译方面的.有API方面的,今天要讲的是编译方面的一些问题.我把它们整理后分享出来,以 ...

  3. mint-ui之picker爬坑记

    picker的数据来源为动态获取时,数据无法正常渲染!因为方法不对,所以坑大了!深刻地体会到'业不精,我之过',谨以此文,深刻地记录一下踩坑及爬坑的整个过程,以便日后不再入坑,也给后来者提供一下参考 ...

  4. mac开发环境爬坑记(搭建php+nginx+mysql+redis+laravel+git+phpstorm)

    题外话:前几天,终于以原价一半的价格,将我那台15版mbp在bbs上卖了出去.之所以用了“终于”这个词儿,是我一直迟迟没有下定决心卖掉它,可眼瞅着再不卖掉,又要掉价,况且我的新电脑,也终于下来了. 话 ...

  5. vue-element-admin跟springboot+shiro部署爬坑记

    今天把前端采用vue-element-admin与springboot的项目部署到正是线上,在开发线上很OK的,一放上去我的天啊,坑是真的多阿.下面听我一一道来:我这边采用的是nginx服务器部署. ...

  6. python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

    简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理.现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 j ...

  7. docker运行jexus+mono爬坑记

    新的.net core都已经支持docker.手头有一些原来开发的asp.net旧项目,用的asp.net mvc开发的,跑在.net formwork 4.6上. 在docker的公共仓库searc ...

  8. swagger 爬坑记

    Swagger 的好处不用我多说,但是一不小心可能就被坑……今天下午就被上了一课,废话不多说,直接上代码(图) 实体类: 好像没啥问题,对吧? 但是,在http://localhost:8080/sw ...

  9. 【MyBatis】MyBatis自动生成代码查询之爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

随机推荐

  1. Spring ApplicationContext(十)finishRefresh

    ApplicationContext(十)finishRefresh Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 经过 ...

  2. docker下安装tensorflow

    一,查找镜像 root@xushi:~# docker search tensorflow NAME DESCRIPTION STARS OFFICIAL AUTOMATED tensorflow/t ...

  3. IOS初级:NSKeyedArchiver

    NSKeyedArchiver对象归档 首先要实现<NScoding>里面的两个代理方法initWithCoder,encodeWithCoder @property (nonatomic ...

  4. centos下安装配置jetty

    下载jdk-8u144-linux-x64.tar.gz # tar -zxvf jdk-8u144-linux-x64.tar.gz # mv jdk1.8.0_144 /usr/java/ # u ...

  5. Hibernate学习笔记:基础模型类

    根据业务建模型时,有一些字段基本每个表都是需要的,如下表: package com.company.jelly.model; import javax.persistence.EntityListen ...

  6. hdu6069 多校Counting Divisors

    思路:对于n^k其实就是每个因子的个数乘了一个K.然后现在就变成了求每个数的每个质因子有多少个,但是比赛的时候只想到sqrt(n)的分解方法,总复杂度爆炸,就一直没过去,然后赛后看官方题解感觉好妙啊! ...

  7. 爬虫之mongodb数据库

    一 mongodb的介绍 1.易用性:mongodb是一款强大.灵活并且易扩展的数据库.他面向于文档的数据库,而不是关系性数据库.不采用关系型主要是为了获得更好的扩展性.还有一个好处就是面向文档的数据 ...

  8. Hadoop3集群搭建之——安装hadoop,配置环境

    接上篇:Hadoop3集群搭建之——虚拟机安装 下篇:Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoop3集群搭建之——hbase安装及简单操作 上篇已 ...

  9. Java核心技术之类与对象

    知识点 1. 一个对象变量并没有实际包含一个对象,而仅仅引用一个对象.new操作符的返回值也是一个引用. 2. 局部变量不会自动地初始化为null,而必须用过调用new或将他们设置为null进行初始化 ...

  10. php $_SERVER中的一些选项说明

    1, $_SERVER['SCRIPT_FILENAME'] 和 常量 __FILE__的区别(一般情况下两者的显示相同,都是显示文件的绝对路径,包括文件名,显示的起点是 电脑根目录 /) ①,如果在 ...