环境:
1、node.js
获取地址:
https://pan.baidu.com/s/1s1oUHAw8_6G5MfwcRYSiRA,提取码:10cs
tar -xvf node-v10.15.2-linux-x64.tar.xz
mv node-v10.15.2-linux-x64 nodejs
确认一下nodejs下bin目录是否有node 和npm文件,如果有执行软连接,如果没有重新下载执行上边步骤;
建立软连接,变为全局
ln -s /opt/nodejs/bin/npm /usr/local/bin/
ln -s /opt/nodejs/bin/node /usr/local/bin/
验证:
node -v
npm -v
2、mongodb
获取地址:
https://pan.baidu.com/s/1YTPQGZqvl0Hsn1i8i4NRgg,提取码:z1j4
tar -zxvf mongodb-linux-x86_64-3.4.9.tgz
mv mongodb-linux-x86_64-3.4.9 mongodb
mkdir db
mkdir logs
进入到bin目录下,编辑mongodb.conf文件,内容如下:
dbpath=/opt/mongodb/db
logpath=/opt/mongodb/logs/logs
port=27017
fork=true
nohttpinterface=true
验证:
执行命令
./mongod -f mongodb.conf
./mongo
db.version()
显示版本号就可以了。
./mongo 127.0.0.1:27017/admin
输入 db ,就可以看到当前得数据库是admin
配置开机启动
vim /etc/rc.d/rc.local,添加下面得内容
/opt/mongodb/bin/mongod --config /opt/mongodb/bin/mongodb.conf
配置环境变量
export MONGODB_HOME=/opt/mongodb/bin
export PATH=$MONGODB_HOME:$PATH
关闭mongodb服务
使用db.shutdownServer();命令可以关闭到MongoDB服务,但是这个命令的执行要在admin数据库下,所以先切换到admin,再关闭服务,完整运行过程如下:
如果重新进入,就要重新执行命令:
./mongod -f mongodb.conf #启动数据库
./mongod --dbpath=/opt/mongodb/db --logpath=/opt/mongodb/logs/logs --repair #或者以修复模式启动,这样可以看到具体错误
./mongo #进入数据库
如果遇到下面报错,可以尝试重启服务器:
创建用户:
use admin
db.createuser({user:"root",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
user表示用户名,pwd表示密码,role表示角色,db表示这个用户应用在哪个数据库上。用户的角色,有如下几种(参考资料):
Read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusteradmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 只在admin数据库中可用。超级账号,超级权限
用户创建成功之后,我们关闭掉当前MongoDB服务实例,然后重新启动新的实例,启动方式如下:
mongod -f /opt/mongodb/bin/mongodb.conf --auth
show dbs
执行结果如下:
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
此时我们需要先进入到admin数据库中,然后授权,操作如下:
use admin
db.auth("root","123")
auth方法执行结果返回1表示认证成功。然后再去执行show dbs就可以看到预期结果了。此时我再在sang库下创建一个只读用户,如下:
use sang
db.createuser({user:"readuser",pwd:"123",roles:[{role:"read",db:"sang"}]})
创建成功之后,再按照上面的流程进入到sang库中,使用readuser用户进行认证,认证成功之后一切我们就可以在sang库中执行查询操作了,步骤如下:
use sang
db.auth("readuser","123")
做完这两步之后再执行查询操作就没有任何问题了,但是此时如果执行插入操作会提示没有权限,那我们可以创建一个有读写功能的用户执行相应的操作,这里就不再赘述。
Docker创建容器
1、docker 版本
docker version
查看docker版本
2、拉取Yapi镜像
docker pull silsuer/yapi
3、运行容器
--name是指定容器名,-dit是指后台运行容器,并返回容器id(或者-it,指在当前窗口以伪终端进入容器,这里如果只用-d,容器启动后就会马上停止),-p是指端口映射(主机端口:容器端口,27017是数据库端口,9090是yapi初始化配置端口,3000是yapi实际运行端口)
docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash
报错信息:
docker: Error response from daemon: driver Failed programming external connectivity on endpoint yapi (7f9dbd04615be71bd31f75c44dfc32867c2009cb7dc54fd5d34dc95e27f05bd9): Error starting userland proxy: listen tcp 0.0.0.0:27017: bind: address already in use.
解决:
netstat -tanlp
sudo kill 8622
再次执行运行容器,报错信息:
docker: Error response from daemon: Conflict. The container name "/yapi" is already in use by container "2afc4baca5f5c35948f255f49acea5f2bcd0baee7c873d628d675a28ec593333". You have to remove (or rename) that container to be able to reuse that name.
解决:
docker ps -a
看到之前运行docker容器还没有退出,导致出现容器重名情况。
使用下面命令,删除容器
docker rm 2afc4baca5f5
重新执行命令:
docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash
进入容器
docker attach yapi
进入容器,有两种方式:docker attach yapi (exit退出容器后,容器停止运行)或者docker exec -it yapi bash(exit退出容器后,容器依旧运行)
4、容器中部署安装Yapi
4.1、可视化安装(不建议)
npm install -g yapi-cli --registry https://registry.npm.taobao.org
找到yapi的安装目录:
find / -name yapi
启动:
./yapi server
关闭防火墙,浏览器中访问:http://IP:9090/
4.2、命令安装
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置,主要配置 MongoDB 数据库,以及 Admin 账号。
cd vendors
然后
npm install --production --registry https://registry.npm.taobao.org
此时报错信息如下:
解决方案:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
vim ~/.profile
source ~/.profile
再次执行命令:
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 IP:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。