首頁  >  文章  >  運維  >  有關centos部署yapi的問題記錄

有關centos部署yapi的問題記錄

藏色散人
藏色散人轉載
2021-07-10 16:12:161970瀏覽

前言

這幾天終於完成了為期三個月的公司某個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就能透過公網位址訪問,當然此時是不安全的

有關centos部署yapi的問題記錄

此時任何一個人都能透過連接你的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

有關centos部署yapi的問題記錄

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

有關centos部署yapi的問題記錄

總結

至此,已經把yapi的原始碼clone了一份到你自己的內網,當然,期間還是會遇到不少的坑,我遇到的主要還是mongdb認證的坑:例如認證設定不成功、config檔案設定不正確之類的,甚至pm2啟動yapi失敗,總之多嘗試多動手,自己實在不能解決再去請教大牛。

① mongdb認證取得失敗

有關centos部署yapi的問題記錄

解決: 檢查mongdb設定是否正確、認證設定是否成功,yapi的config檔是否設定正確

② pm2啟動yapi失敗,一直重啟

有關centos部署yapi的問題記錄

解決:透過pm2 log查看是先前透過npm開啟的服務沒有結束,導致連接埠佔用,ctrl c之前的服務就行

前兩個問題似乎都不算是坑,無非就是攔路虎

③配置好的郵箱失敗

有關centos部署yapi的問題記錄

解決:那肯定是郵箱設定不對嘍,重來吧!然後就繼續採坑

不確定是不是網易信箱有點問題還是怎麼的,換成qq的就行,修改完config.json文件,我以為重npm run install-server就萬事大吉了,其實-->

有關centos部署yapi的問題記錄

應該是mongdb中yapi已經存在這個管理員的訊息,如果admin下面沒有資料的話就直接刪掉這條,如果有點話就修改資料吧。我很懶,直接用mongdb compass把整個yapi都刪掉了,刪庫跑路!

不足之处欢迎拍砖指正!

有關centos部署yapi的問題記錄

yapi开启https访问

虽然对小白来说https然并卵,我还是想捣鼓一下试着通过https来访问我的yapi,首先证书我是有了,获取证书的方法也有千千万万种,我这里用的阿里云的免费证书,总之有证书的话应该能拿到证书文件如.pem、.key、.pfx之类文件。技术菜的我天真的以为还能开启3000端口的https访问,结果啪啪啪打脸打的很清脆,于是乎把https的端口设定成了8443。大概步骤如下:

  • 获取证书文件(默认有证书并且能拿到.key和.pem文件或者.pfx文件)

    有關centos部署yapi的問題記錄

  • 上传证书(我直接放在app.js同级,根据个人喜好)

    有關centos部署yapi的問題記錄

  • 修改app.js 是基于koa的 不过我没有再引用koa-ssl,直接用的node的https方法的第一种

    // 引入相关的服务和文件
    const fs = require('fs');
    const https = require('https');
    const options = {
        key: fs.readFileSync(__dirname + '/server.key'),
        cert: fs.readFileSync(__dirname + '/server.pem')
      };
    const port = 8443;
    //...
    //开启https端口
    https.createServer(options, app.callback()).listen(port)
  • 成功开启https

    有關centos部署yapi的問題記錄

  • 同样还是踩了不少坑

    • 文件径不对 not such file
      解决:用__dirname
    • mac verify failure
      解决: 用node https提供的第一种方法引入证书文件

推荐:《centos教程

以上是有關centos部署yapi的問題記錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除