一、原因:
我的服务器是香港的服务器,使用可视化部署的时候,由于默认的下载地址是阿里云的地址,所以下载的时候总是下载超时。无奈只能使用命令行部署。
二、手动部署
这是官方给出命令行部署的知道说明。
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版本。
三、说明
-
安装缓慢的问题
npm install --production --registry https://registry.npm.taobao.org
这里使用淘宝的镜像下载的,因为我的服务器是香港的服务器。这样下载会很慢,去掉后边的
--registry
部分既可以。像下面这种。npm install --production
-
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连接是不需要密码的。
-
权限问题
报错如下: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
网友评论