docker非官方安装
https://www.jianshu.com/p/a97d2efb23c5
优点
- 一键部署
- 只需要安装docker环境就可运行
缺点
- 无法二次开发
源码安装
依赖环境
- node 7.6+
- mongodb(latset-version)
node安装
- yum安装
(centos环境) yum install -y nodejs (默认版本太低用不了)
- 使用源码安装
先升级 gcc 版本> 4.8
参考 https://www.vpser.net/manage/centos-6-upgrade-gcc.html
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3.tar.gz
tar xvf node-v8.11.3.tar.gz
cd node-v8.11.3/
./configure
make # 编译过程非常漫长,保守估计20分钟
make install # 安装
mongodb安装
docker安装mongo
docker pull mongo
# 服务端
docker run -d --name carl-mongodb -p 7017:27017 -v /usr/local/xbw/mongodb-cc:/data/db mongo --auth
# 客户端连接
docker exec -it carl-mongodb bash
mongo
常规安装
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
mv mongodb-linux-x86_64-3.0.6/ /usr/local/xbw/mongodb
cd /usr/local/xbw/mongodb
# 创建db路径
mkdir -p /usr/local/xbw/db
# 运行server
./mongod --dbpath /usr/local/xbw/db --port 37017 --auth
# 客户端连接
mongo --port 37017
创建MongoDb的root用户以及子用户
mongodb是将每个用户-角色-数据库关系切割得很细,需要关心当前的用户的角色是否有与之对应的操作权限
role | 说明 |
---|---|
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
- 创建root用户
切换admin数据库,创建root用户
use admin
db.createUser(
{
user: "admin",
pwd: "cd123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
- 创建yapi数据库以及用户
use yapi
db.createUser(
{
user: "yapi",
pwd: "cd123456",
roles: [ { role: "readWrite", db: "yapi" } ]
}
)
# 输出successfully add user 代表成功
- 验证用户是否创建成功
use yapi
# 授权
db.auth('yapi','cd123456')
# 创建机会==常规数据库的表
db.createCollection("carlTest")
# ok代表成功
命令行部署
- 下载源码
git clone https://github.com/YMFE/yapi.git vendors
- 修改配置文件
cp vendors/config_example.json ./config.json
最简单配置文件
{
"port": "3011",
"adminAccount": "admin@admin.com",//最好不要修改
"db": {
"servername": "",//mongodb的IP
"DATABASE": "yapi", //mongodb数据库
"port": 7017, //mongodb的Port
"user":"", //用户名
"pass":""//密码
}
}
- 确认文件位置
|--config.json
|--vendors
|--README.md
|--...
- npm安装依赖
cd vendors
npm install --production --registry https://registry.npm.taobao.org
- 初始化管理员帐号和密码
npm run install-server
如果失败查看vendors同级目录log文件中*.log文件
- 运行
node server/app.js
Pm2管理node服务器
npm install pm2@latest -g
# 验证安装是否成功
pm2 -v
pm2 start server/app.js
停止
pm2 stop app
删除
pm2 del app
官网推荐pm2作为node服务端管理工具,或者直接用 nohup 也可以
配置nginx 代理
server {
listen 80;
server_name doc.newrank.cn;
access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:3011;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
如果无法正常访问可能原因是nginx缓存