放在/opt/目录
tar -xvf node-v10.15.2-linux-x64.tar.xz #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
如果报错,重启终端就ok了。
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
cd mongodb
mkdir db
mkdir logs
进入到bin目录下,编辑mongodb.conf文件(新建),内容如下:
dbpath=/opt/mongodb/db
logpath=/opt/mongodb/logs/logs
port=27017
fork=true
nohttpinterface=true
auth=true
执行命令
./mongod -f mongodb.conf
./mongo
db.version()
exit
显示版本号就可以了。
退出后执行命令
./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
vim /etc/profile
添加下面两行
export MONGODB_HOME=/opt/mongodb/bin
export PATH=$MONGODB_HOME:$PATH
source /etc/profile #使环境变量生效
使用db.shutdownServer();命令可以关闭到MongoDB服务,但是这个命令的执行要在admin数据库下,所以先切换到admin,再关闭服务,完整运行过程如下:
如果重新进入,就要重新执行命令:
./mongod -f mongodb.conf #启动数据库
./mongod --dbpath=/opt/mongodb/db --logpath=/opt/mongodb/logs/logs --repair #或者以修复模式启动,这样可以看到具体错误
./mongo #进入数据库
如果遇到下面报错,可以尝试重启服务器:
OK,假设我给admin数据库创建一个用户,方式如下:
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
启动成功之后,如果我们直接执行如下命令,会提示没有权限:
./mongo
show dbs
执行结果如下:
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
此时我们需要先进入到admin数据库中,然后授权,操作如下:
use admin
db.auth("root","123")
db.grantRolesToUser ( "root", [ { role: "__system", db: "admin" } ] )
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 version
查看docker版本
docker pull silsuer/yapi
--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.1、可视化安装(推荐)
npm install -g yapi-cli --registry https://registry.npm.taobao.org
找到yapi的安装目录:
find / -name yapi
启动:
./yapi server
关闭防火墙,浏览器中访问:http://IP:9090/
部署完成后,按照提示操作:
新打开一个窗口,到部署目录
输入命令后访问IP:3000
后台启动,需要安装PM2
npm install -g pm2
ln -s /root/.npm-global/bin/pm2 /usr/local/bin/pm2(建立软链,注意改成自己的安装路径)
pm2 start --name *** app.js(***代表你随便起个名字)
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配置的端口},初次运行会有个编译的过程,请耐心等候