zoukankan      html  css  js  c++  java
  • centos部署yapi爬坑记

    前言

    这几天终于完成了为期三个月的公司某个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都删掉了,删库跑路!

    不足之处欢迎拍砖指正!

  • 相关阅读:
    Kafka sender消息生产者
    springboot--websocket简单demo(一):session chat
    IDE引入mindmap插件,在项目中添加思维导图
    Redis启动命令
    Failure to find com.oracle:ojdbc6:jar:11.2.0.1.0
    Java秒杀系统实战系列~构建SpringBoot多模块项目
    利用java多线程技术往Elasticsearch导入千亿级数据
    list遍历陷阱分析原理
    Storm框架最显著的应用
    Apache Storm Trident
  • 原文地址:https://www.cnblogs.com/hu-qi/p/yapi.html
Copyright © 2011-2022 走看看