一.安装nodejs
获取资源(部署nodejs尽可能选择偶数版本,因为偶数版本官方有较长的维护时间,故这次选择8.x。)
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
安装
yum install -y nodejs
查看版本
node -v
查看npm版本
npm -v
二、CentOS 7 安装及卸载MongoDB
卸载MongoDB
彻底卸载MongoDB,必须移除MongoDB应用程序,移除配置文件和任何包含数据及日志的目录。下面的指南是彻底卸载MongoDB的必须步骤。
警告:如下步骤将会彻底卸载MongoDB,包括其配置文件和所有的数据库文件。这个过程是不可逆的,所以确保在执行这些步骤之前已经备份了你的配置文件和数据文件。
I. 停止MongoDB
sudo service mongod stop
II. 移除MongoDB包
移除之前安装的所有MongoDB包
sudo yum erase $(rpm -qa | grep mongodb-org)
III. 删除数据文件及日志文件
删除MongoDB数据库和日志文件
- sudo rm -r /var/log/mongodb
安装MongoDB
sudo vi /etc/yum.repos.d/mongodb-org-3.4.repo
在文件中输入:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
保存退出。
2. 安装MongoDB包和相关工具
sudo yum install -y mongodb-org
不启用SELinux
设置 /etc/selinux/config 下的SELINUX字段为disabled,不启用SELinux。
sudo vi /etc/selinux/config
编辑
SELINUX=disabled
我使用的这种方式。
III. 相关命令
启动MongoDB
sudo service mongod start
设置开机启动
sudo chkconfig mongod on
停止MongoDB
sudo service mongod stop
重启MongoDB
sudo service mongod restart
注意: 在Centos 7 版本中,运行上述命令虽然也能达到效果,但还是建议使用如下命令:
启动MongoDB
sudo systemctl start mongod.service
验证MongoDB是否成功启动
sudo cat /var/log/mongodb/mongod.log
如出现
[thread1] waiting for connections on port
其中的默认为27017,在 /etc/mongod.conf中配置,则启动成功!
设置开机启动
sudo systemctl enable mongod.service
停止MongoDB
sudo systemctl stop mongod.service
重启MongoDB
sudo systemctl restart mongod.service
注意: 在Centos 7 版本中,运行上述命令虽然也能达到效果,但还是建议使用如下命令:
启动MongoDB
sudo systemctl start mongod.service
验证MongoDB是否成功启动
sudo cat /var/log/mongodb/mongod.log
如出现
[thread1] waiting for connections on port
其中的默认为27017,在 /etc/mongod.conf中配置,则启动成功!
设置开机启动
sudo systemctl enable mongod.service
停止MongoDB
sudo systemctl stop mongod.service
重启MongoDB
sudo systemctl restart mongod.service
三.安装git
官方推荐,在内网部署的时候安装git,可以根据自己所需安装
yum -y install git
四:命令行部署YAPI:
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors
//或者下载 zip 包解压到 vendors 目录(我采用是解压zip包放到服务器上,解压(unzip -o -d /opt/yapi yapi-master.zip)后重命名为vendors)
cd yapi
cp vendors/config_example.json ./config.json
(在测试服务器上为:cp config_example.json /opt/yapi/config.json)
//复制完成后请修改相关配置(关键一项,之后详细说明)
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server
//安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
在这儿报了个错:
是因为没有权限。
所以,创建mongodb db,user
将创建成功的 db及user 配置到config.json文件内即可
如 mongo --port 27017 -u “apidocuser” -p “apidocpwd” --authenticationDatabase “apidoc” 可访问即为配置成功,将相应参数配置到config.json内即可
配的是admin库里的管理员账号
创建用户
熟 悉 Oracle 的童鞋们都知道,数据库用户有两种,一种是管理员,用来管理用户,一种是普通用户,用来访问数据。类似的,为 MongoDB 规划用户鉴权时,至少要规划两种角色:用户管理员和数据库用户。如果搭建了分片或主从,可能还会要规划数据库架构管理员的角色,它们专门用来调整数据库的 分布式架构。
在创建用户之前,我们首先要修改 MongoDB 的启动方式。缺省方式下 MongoDB 是不进行鉴权检查的。我们只要在运行 MongoDB 的命令后面加上一个 --auth 参数即可,例如:
mongod --dbpath ./db1 --port 20000 --auth
MongoDB默认不启用安全授权机制。在单节点环境下,你需要在启动mongod时指定–auth,或者在参数里设置auth=true来启用这个特性。
如果上述命令无效的话,那就 手动开启用户权限认证,在/etc/mongod.conf里最后一行家auth=true
如何创建用户管理员
用户管理员是第一个要创建的用户。在没有创建任何用户之前,你可以随意创建用户;但数据库中一旦有了用户,那么未登录的客户端就没有权限做任何操作了,除非使用db.auth(username, password)方法登录。
用户管理员的角色名叫 userAdminAnyDatabase,这个角色只能在 admin 数据库中创建。下面是一个例子:
use admin
switched to db admin
db.createUser({user:“root”,pwd:“woshimima”,roles:[“userAdminAnyDatabase”]})
Successfully added user: { “user” : “root”, “roles” : [ “userAdminAnyDatabase” ] }
这个例子创建了一个名为 root 的用户管理员。创建完了这个用户之后,我们应该马上以该用户的身份登录:
db.auth(“root”,“root123”)
1
db.auth() 方法返回 1 表示登录成功。接下来我们为指定的数据库创建访问所需的账号。
然后修改在/etc/mongod.conf文件中,在配置文件中添加.
security:
authorization: enabled
以认证的方式启动MongoDB数据库
mongod --auth --port 27017 --dbpath /data/testdb
4.创建其他的用户
文档参考:https://docs.mongodb.org/v2.6/tutorial/add-user-to-database/
1.用有合适权限的用户连接MongoDB实例
比如:使用刚才创建的administrator用户siteUserAdmin,
mongo --port 27017 -u root -p woshimima --authenticationDatabase admin
2.创建一个新用户
创建用户语法可以参考:db.createUser()。
下面的例子是在testdb数据库中创建一个用户。
use testdb
db.createUser({user:“tianyang”,pwd:“woshimima”,roles:[{role:“readWrite”,db:“testdb”}]})
修改用户密码:db.changeUserPassword(“tianyang”,“tianyang0619”)
db.auth(“tianyang”,“tianyang0619”)
删除用户db.dropUser(’'tianyang")
执行npm run install-server,安装程序会初始化数据库索引和管理员账号
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候