以下安装步骤使用宝塔面板,如未安装宝塔面板,请点击这里进行安装
如果你是国内服务器的话,按照 官方教程 安装基本没什么问题,但是如果是境外服务器(包含香港服务器)的话,因为使用的淘宝源的缘故,会出现一些问题。
以下则详细记录了笔者本次安装中出现的问题,以及实践过后的解决方案。
笔者所使用的服务器为腾讯 香港 轻量云。
官方提供了两种安装方式:
可视化方式命令行方式笔者在安装的过程中,因为觉得可视化方便的原因,先是使用了可视化的方式,前期出现了一堆恼人的问题不说,过关斩将最后打开可视化页面进行最后一步:点击一键部署,还是出现了各种问题。
笔者建议:境外服务器使用命令行方式部署 YApi 或许来得较为愉悦
按照官方要求以及笔者尝试,选择了这样的环境:
MongoDB在宝塔面板-软件商店中搜索 MongoDB 安装即可
PM2 管理器这一步境外服务器会出现一些问题,主要是由于使用淘宝源下载 Node.js 造成下载缓慢最终超时。如果不为境外服务器,那么在宝塔面板的软件管理中,搜索后点击下载安装即可。而对于境外服务器会出现的问题,解决的方案有以下两种:
手动下载指定版本 Node.js 压缩包,然后放到下载缓存位置 查看失败的日志信息(也可使用宝塔面板的文件管理进入指定目录查看该文件) cat /www/server/panel/logs/error.log 找到下载链接地址 笔者的下载链接为: http://npm.taobao.org/mirrors/node/v12.19.0/node-v12.19.0-linux-x64.tar.xz 复制链接,自行下载该文件将下载好的文件上传到服务器的/www/server/nvm/.cache/bin/node-v12.19.0-linux-x64/目录下,如果没有该目录可以自行创建该目录mkdir /www/server/nvm/.cache/bin/node-v12.19.0-linux-x64/,再上传重新尝试下载,直至下载 真正 成功,如何确保安装成功,请看第二点 在宝塔的软件管理界面,反复安装和卸载 PM2 管理器(其中可能会有安装成功提示,但实际上没有安装成功),可以用以下两种方案来确保安装成功(其中 1 仅为 2 的辅助方法): 在宝塔消息盒子的执行日志中发现下载源不是淘宝源而是https://nodejs.org/dist/v12.19.0/node-v12.19.0-linux-x64.tar.xz打开宝塔 PM2 管理器界面,能够在 Node 版本中正确看到 Node 版本,而不为 node,且模块管理中也能够看到 pm2 和 npm 模块,则为安装成功确保环境安装成功后,即可进行 YApi 安装
同理,如果你是境外服务器,访问淘宝源很慢,那么使用下面的方式来替换官方的写法:
npm install -g yapi-cli yapi server 启动安装向导后,访问ip:9090即可看到可视化安装界面 如果你进不去,可能是你 没开端口 ,首先你得在你的 服务器供应商 (如阿里云、腾讯云)里的控制台开放 9090 端口,其次你需要在 宝塔面板-安全 里开放 9090 端口。如果,当你填完可视化界面的内容之后,点击部署按钮,发现 YApi 部署过程中,依旧需要使用淘宝源下载一些依赖,然后进度条仿佛卡住一般一动不动,不知道你会是什么心情。所以如果你是境外服务器,你应该事先这么做: 在刚刚 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 进入 YApi 安装目录下的 src 文件夹,开始编辑 utils.js 文件。找到function github()函数,在函数代码块内部的开头,加上type = 'github',即可使用 github 源进行下载刷新浏览器,重新填写表格信息,点击一键部署按钮,等待部署完成(如果你在这一步像笔者一样悲惨,仍然没有部署完成,出现了其他的错误,可以采用笔者下面推荐的命令行部署方式)为了解决重启之后服务停止不能访问的问题,创建守护线程
在执行完命令行方式的安装之后,已经 位于 vendors 文件夹下 。(如果使用的可视化安装方式,请参照命令行安装方式中的目录顺序,自行进入 vendors 文件夹下)
此时运行指令: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 站点时文件上传功能异常。