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都刪掉了,刪庫跑路!

不足之處歡迎拍磚指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM