文章目錄
- 官方位址
- 機器環境
- 安裝YAPI基礎環境
-
- nodejs安裝
- 安裝mongodb
- 安裝包編譯的方式安裝
-
- 1.建立檔案夾
- 2.下載下傳代碼
- 3.修改配置
- 4.進入mongo建立資料庫和使用者密碼等
- 5.修改代碼中的連接配接參數,不然抱錯
- 6.安裝
-
- 抱錯
- 7.啟動
-
- 簡單啟動
- pm2管理
- 8.通路ip:3000(預設)
- 官方安裝
-
- 下載下傳運作
- 填寫配置
- 錯誤一
-
- 解決方式
- 錯誤二
-
- 解決方式
- 再運作
- 抱錯
-
- 解決辦法
- 再運作
- 抱錯
-
- 解決辦法
-
- 進入資料庫
- 改config
- 再運作
- 成功
- 檢視
- 碼字不易,大家多多提鞋
官方位址
https://github.com/YMFE/yapi
機器環境
lsb_release -a

安裝YAPI基礎環境
- nodejs(7.6+)
- mongodb(2.6+)
- git
nodejs安裝
參見我另一篇博文:
https://blog.csdn.net/weixin_42183854/article/details/104819890
安裝mongodb
參見另一篇博文:
https://blog.csdn.net/weixin_42183854/article/details/104804860
安裝包編譯的方式安裝
參照官方issues裡面的一個回答
https://github.com/YMFE/yapi/issues/1605
1.建立檔案夾
mkdir /opt/YApi
2.下載下傳代碼
cd /opt/YApi
git clone https://gitee.com/mirrors/YApi.git vendors
3.修改配置
cp vendors/config_example.json ./config.json
vim config.json
4.進入mongo建立資料庫和使用者密碼等
我這裡用的是docker生成的mongo
docker exec -it mongo bash
mongo
use yapi
# 剛才寫的使用者和密碼
db.createUser({user: "yapi", pwd: "yapi", roles: [{ role: "dbOwner", db: "yapi" }]})
退出
exit
5.修改代碼中的連接配接參數,不然抱錯
cd vendors
vim server/utils/db.js
* 原代碼:let options = {useNewUrlParser: true, useCreateIndex: true};
* 修改為: let options = {useNewUrlParser: true, useCreateIndex: true,useUnifiedTopology: true };
6.安裝
還是再vendors目錄下
npm install --production --registry https://registry.npm.taobao.org
npm run install-server
抱錯
> [email protected] install /opt/YApi/vendors/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/8.12.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/YApi/vendors/node_modules/dtrace-provider/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/opt/YApi/vendors/node_modules/dtrace-provider/.node-gyp'
gyp ERR! System Linux 3.10.0-1062.1.1.el7.x86_64
gyp ERR! command "/usr/local/node-v8.12.0/bin/node" "/usr/local/node-v8.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/YApi/vendors/node_modules/dtrace-provider
gyp ERR! node -v v8.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
added 334 packages from 322 contributors in 14.925s
解決方式:改權限
chmod -R 777 /opt/YApi
# 然後再執行
npm install --production --registry https://registry.npm.taobao.org
npm run install-server
到這裡就安裝完成了,我們可以啟動了.
7.啟動
簡單啟動
挂掉控制台,就不能用了
node server/app.js
當然可以 放到背景
pm2管理
## 安裝
cnpm install pm2
# 開機啟動pm2
pm2 startup
因為太慢,是以我用cnpm安裝的
pm2 啟動yapi
指向安裝目錄下的app.js
pm2 start /opt/YApi/vendors/server/app.js
pm常用指令
https://blog.csdn.net/chengxuyuanyonghu/article/details/74910875
8.通路ip:3000(預設)
使用者名密碼是剛才輸出的
預設是:
賬号名:“[email protected]”,密碼:“ymfe.org”
官方安裝
不用官方安裝的原因,
安裝最新版的時候,總是再出錯.
下載下傳運作
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
填寫配置
點選部署
錯誤一
資料庫連接配接錯誤
Error: (node:1787) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated,
and will be removed in a future version. To use the new Server Discover and Monitoring engine,
pass option { useUnifiedTopology: true } to the MongoClient constructor.
解決方式
進入安裝目錄添加資料庫連接配接
cd /sixmillions/yapi/vendors/
ls
vim server/utils/db.js
# 添加
useUnifiedTopology: true
錯誤二
權限錯誤
gyp
WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/8.12.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/YApi/vendors/node_modules/dtrace-provider/.node-gyp"
gyp
WARN install got an error, rolling back install
gyp
WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/opt/YApi/vendors/node_modules/dtrace-provider/.node-gyp'
gyp
ERR! System Linux 3.10.0-1062.1.1.el7.x86_64
gyp ERR! command "/usr/local/node-v8.12.0/bin/node" "/usr/local/node-v8.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/YApi/vendors/node_modules/dtrace-provider
gyp ERR! node -v v8.12.0
gyp
ERR! node-gyp -v v3.8.0
gyp ERR! not ok
解決方式
修改安裝目錄權限
chmod -R 755 /sixmillions/yapi
再運作
進入/sixmillions/yapi/vendors目錄(安裝目錄下的vendors)
cd /sixmillions/yapi/vendors
npm run install-server
抱錯
解決辦法
删除這個檔案
檔案在安裝目錄下
cd /sixmillions/yapi
ls
rm -rf init.lock
再運作
npm run install-server
抱錯
資料庫認證失敗錯誤
> [email protected] install-server /sixmillions/yapi/vendors
> node server/install.js
log: mongodb load success...
(node:8921) UnhandledPromiseRejectionWarning: Error: 初始化管理者賬号 "[email protected]" 失敗, E11000 duplicate key error collection: myyapi.user index: email_1 dup key: { email: "[email protected]" }
at /sixmillions/yapi/vendors/server/install.js:146:17
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
(node:8921) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:8921) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
解決辦法
進入資料建立使用者密碼然後修改配置再運作
進入資料庫
docker exec -it mongotest bash
mongo
use yapi
db.createUser({user: "yapi", pwd: "yapi", roles: [{ role: "dbOwner", db: "yapi" }]})
給yapi資料庫建立了使用者名和密碼都是yapi
退出
exit
改config
進入安裝目錄
cd /sixmillions/yapi
vim config.json
# 和下面對比,修改相關項目
{
"port": "3000",
"adminAccount": "[email protected]",
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": "27017",
"user":"yapi",
"pass":"yapi",
"authSource":""
},
"mail": {
"enable": false,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth": {
"user": "***@163.com",
"pass": "*****"
}
}
}
儲存後在運作
再運作
cd /sixmillions/yapi/vendors/
npm run install-server
成功
參上上面安裝包的方法,運作項目
已經安裝pm2
pm2 start /sixmillions/yapi/vendors/server/app.js --name="yapitest"
可以看到我們的成功運作了(那個app是安裝包安裝的yapi,讓我先停止了)