如何手动安装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
    

你可能感兴趣的:(服务器)