如何手動安裝yapi


一、原因:

我的服務器是香港的服務器,使用可視化部署的時候,由於默認的下載地址是阿里雲的地址,所以下載的時候總是下載超時。無奈只能使用命令行部署。

二、手動部署

這是官方給出命令行部署的知道說明。

mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下載 zip 包解壓到 vendors 目錄(clone 整個倉庫大概 140+ M,可以通過 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令減少,大概 10+ M)
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配置的端口},初次運行會有個編譯的過程,請耐心等候

我的nodejs版本是v10.20.1,注意按照官方的要求,使用node版本。

三、說明

  1. 安裝緩慢的問題

    npm install --production --registry https://registry.npm.taobao.org
    

    這里使用淘寶的鏡像下載的,因為我的服務器是香港的服務器。這樣下載會很慢,去掉后邊的--registry部分既可以。像下面這種。

    npm install --production
    
  2. mongodb數據無法認證
    報錯如下:

    error: MongoNetworkError: Authentication failed., mongodb Authentication failed
    log: mongodb load success...
    

    這個問題,可能是官方給你設置的坑。在config.json里面,如果你之前配置過的config.json的話,應該會看到,數據庫有下面的配置:

    "db": {
        "servername": "127.0.0.1",
        "DATABASE": "yapi",
        "port": 27017,
        "user": "test1",
        "pass": "test1",
        "authSource": ""
      },
    

    問題就是在你不注意的時候,官方把你的賬號和密碼加上了。你只需要把他們質控就行了,默認情況下mogodb連接是不需要密碼的。

  3. 權限問題
    報錯如下:

    gyp ERR! configure error 
    gyp ERR! stack Error: EACCES: permission denied, mkdir '/root/yapi/vendors/node_modules/dtrace-provider/.node-gyp'
    

    就是說 npm 出於安全考慮不支持以 root 用戶運行,即使你用 root 用戶身份運行了,npm 會自動轉成一個叫 nobody 的用戶來運行,而這個用戶幾乎沒有任何權限。這樣的話如果你腳本里有一些需要權限的操作,比如寫文件(尤其是寫 /root/.node-gyp),就會崩掉了。

    為了避免這種情況,要么按照 npm 的規矩來,專門建一個用於運行 npm 的高權限用戶;要么加 --unsafe-perm 參數,這樣就不會切換到 nobody 上,運行時是哪個用戶就是哪個用戶,即是 root。

    使用如下命令繼續安裝:

    npm install --production --unsafe-perm
    


免責聲明!

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



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