使用境外(香港)服务器部署 YApi 避坑全过程

使用境外服务器部署 YApi 避坑全过程

个人博客地址:https://www.jdassd.top/

以下安装步骤使用宝塔面板,如未安装宝塔面板,请点击这里进行安装

问题

如果你是国内服务器的话,按照 官方教程 安装基本没什么问题,但是如果是境外服务器(包含香港服务器)的话,因为使用的淘宝源的缘故,会出现一些问题。

以下则详细记录了笔者本次安装中出现的问题,以及实践过后的解决方案。

笔者所使用的服务器为腾讯 香港 轻量云。

安装方式

官方提供了两种安装方式:

  1. 可视化方式
  2. 命令行方式

笔者在安装的过程中,因为觉得可视化方便的原因,先是使用了可视化的方式,前期出现了一堆恼人的问题不说,过关斩将最后打开可视化页面进行最后一步:点击一键部署,还是出现了各种问题。

笔者建议:境外服务器使用命令行方式部署 YApi 或许来得较为愉悦

环境配置

按照官方要求以及笔者尝试,选择了这样的环境:

  • MongoDB

在宝塔面板-软件商店中搜索 MongoDB 安装即可

  • PM2 管理器

这一步境外服务器会出现一些问题,主要是由于使用淘宝源下载 Node.js 造成下载缓慢最终超时。如果不为境外服务器,那么在宝塔面板的软件管理中,搜索后点击下载安装即可。而对于境外服务器会出现的问题,解决的方案有以下两种:

  1. 手动下载指定版本 Node.js 压缩包,然后放到下载缓存位置
    1. 查看失败的日志信息(也可使用宝塔面板的文件管理进入指定目录查看该文件)
    cat /www/server/panel/logs/error.log
    
    1. 找到下载链接地址
    笔者的下载链接为:
    http://npm.taobao.org/mirrors/node/v12.19.0/node-v12.19.0-linux-x64.tar.xz
    
    1. 复制链接,自行下载该文件
    2. 将下载好的文件上传到服务器的/www/server/nvm/.cache/bin/node-v12.19.0-linux-x64/目录下,如果没有该目录可以自行创建该目录mkdir /www/server/nvm/.cache/bin/node-v12.19.0-linux-x64/,再上传
    3. 重新尝试下载,直至下载 真正 成功,如何确保安装成功,请看第二点
  2. 在宝塔的软件管理界面,反复安装和卸载 PM2 管理器(其中可能会有安装成功提示,但实际上没有安装成功),可以用以下两种方案来确保安装成功(其中 1 仅为 2 的辅助方法):
    1. 在宝塔消息盒子的执行日志中发现下载源不是淘宝源而是https://nodejs.org/dist/v12.19.0/node-v12.19.0-linux-x64.tar.xz宝塔消息盒子
    2. 打开宝塔 PM2 管理器界面,能够在 Node 版本中正确看到 Node 版本,而不为 node,且模块管理中也能够看到 pm2 和 npm 模块,则为安装成功宝塔PM2管理器界面

确保环境安装成功后,即可进行 YApi 安装

YApi 安装

方式一:可视化部署
  1. 下载以及运行安装向导 yapi-cli
    官方的写法为:
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server

同理,如果你是境外服务器,访问淘宝源很慢,那么使用下面的方式来替换官方的写法:

npm install -g yapi-cli
yapi server
  1. 启动安装向导后,访问ip:9090即可看到可视化安装界面
    如果你进不去,可能是你 没开端口 ,首先你得在你的 服务器供应商 (如阿里云、腾讯云)里的控制台开放 9090 端口,其次你需要在 宝塔面板-安全 里开放 9090 端口。
  2. 如果,当你填完可视化界面的内容之后,点击部署按钮,发现 YApi 部署过程中,依旧需要使用淘宝源下载一些依赖,然后进度条仿佛卡住一般一动不动,不知道你会是什么心情。所以如果你是境外服务器,你应该事先这么做:
    1. 在刚刚 YApi 安装成功的显示里,可以看到 YApi 的安装目录:
    /usr/local/src/nodejs/bin/yapi -> /usr/local/src/nodejs/lib/node_modules/yapi-cli/bin/yapi-cli
    /usr/local/src/nodejs/bin/yapi-cli -> /usr/local/src/nodejs/lib/node_modules/yapi-cli/bin/yapi-cli
    + yapi-cli@1.5.0
    updated 121 packages in 11.981s
    
    1. 进入 YApi 安装目录下的 src 文件夹,开始编辑 utils.js 文件。找到function github()函数,在函数代码块内部的开头,加上type = 'github',即可使用 github 源进行下载
    2. 刷新浏览器,重新填写表格信息,点击一键部署按钮,等待部署完成(如果你在这一步像笔者一样悲惨,仍然没有部署完成,出现了其他的错误,可以采用笔者下面推荐的命令行部署方式)
方式二:命令行部署【推荐】
  1. 首先 cd 进你想存放 YApi 文件夹的目录,然后mkdir yapi创建 YApi 文件夹
  2. cd 进入 YApi 文件夹,复制git clone --depth=1 https://github.com/YMFE/yapi.git vendors然后黏贴+回车
  3. cp vendors/config_example.json ./config.json执行完这句话之后,在 yapi 文件夹下找到 config.json 文件,修改配置。配置文件中,user 和 pass 留空
  4. cd 进入 vendors 文件夹,复制黏贴加回车npm install --production --registry https://registry.npm.taobao.org如果你是境外服务器,那么npm install --production
  5. 运行安装程序:npm run install-server
    整个部署过程如下:
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 install --production
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器,访问 127.0.0.1:{config.json配置的端口}

创建守护线程(使用 PM2)

为了解决重启之后服务停止不能访问的问题,创建守护线程

  1. 在执行完命令行方式的安装之后,已经 位于 vendors 文件夹下 。(如果使用的可视化安装方式,请参照命令行安装方式中的目录顺序,自行进入 vendors 文件夹下)

  2. 此时运行指令:pm2 start server/app.js --watch -n YApi即可

绑定域名

在宝塔的 PM2 管理器中,找到刚刚创建完守护进程的名为 “YApi” 的项目,点击后面的映射再填写域名即可

如果是使用 nginx 的宝塔环境,还需要在 nginx 中配置支持 websocket

在location /添加
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

且 YApi 官方建议部署成 http 站点,因 chrome 浏览器安全限制,部署成 https 会导致测试功能在请求 http 站点时文件上传功能异常。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值