yapi是高效、易用、功能强大的API管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务
部署环境要求:
1)nodejs(7.6+)
2)mongodb(2.6+)
一、安装nodejs
1、首先安装wget
yum install -y wget
如果已经安装了可以跳过该步, -y 参数代表跳过询问
2、下载nodejs最新的bin包 下载地址:https://nodejs.org/en/download/
wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz
然后就是等着下载完毕。
另外你也可以在你喜欢的任意系统上下载最新的bin包,然后通过FTP上传到CentOS上。
3、解压包
依次执行
xz -d node-v9.3.0-linux-x64.tar.xz
tar -xf node-v9.3.0-linux-x64.tar
4、部署bin文件
先确认你nodejs的路径,我这里的路径为/root/node/bin,确认后依次执行
ln -s /root/node/bin/node /usr/bin/node
ln -s /root/node/bin/npm /usr/bin/npm
ln -s /root/node/bin/npm /usr/bin/npx
注意ln指令用于创建关联(类似与Windows的快捷方式)必须给全路径,否则可能关联错误.
5.测试
node -v
npm
npx
6、安装pm2
npm install -g pm2
ln -s /data/node-v12.4.0-linux-x64/bin/pm2 /usr/bin/pm2 这里安装之后需要指定软连接
二、安装mongodb
1、官网下载mongodb 解压到指定路径即可
解压:tar -zxvf mongodb-linux-x86_64-4.0.6.tgz
移动:mv ./mongodb-linux-x86_64-4.0.6 /usr/local/mongodb
2、创建用户
[root@mongo ~]
# useradd mongod
[root@mongo ~]
# echo 123456|passwd --stdin mongod
创建db目录和日志文件
mkdir -p ./data/db
mkdir -p ./logs
touch ./logs/mongodb.log
创建mongodb.conf文件
vim mongodb.conf
#端口号
port=27017
#db目录
dbpath=/usr/local/mongodb/data/db
#日志目录
logpath=//usr/local/mongodb/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0
1)启动
./bin/mongod --config mongodb.conf
2)连接
./bin/mongo
3)测试
5.配置mongodb服务开机启动
1)设置mongodb.service开机服务启动
cd /lib/systemd/system
cat >>mongodb.service<<"EOF"
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
然后设置mongodb.service权限
chmod +x mongodb.service
#启动服务
systemctl start mongodb.service
#停止服务
systemctl stop mongodb.service
#添加开机自启动
systemctl enable mongodb.service
#重启服务
systemctl restart mongodb.service
2)添加环境变量
1、直接用export命令:
export PATH=$PATH:/usr/local/mongodb/bin
2、修改profile文件:
cat >>/etc/profile<<"EOF"
export PATH="$PATH:/usr/local/mongodb/bin"
EOF
#刷新profile文件:
source /etc/profile
3、 修改.bashrc文件:
cat >>/root/.bashrc<<"EOF"
export PATH="$PATH:/usr/local/mongodb/bin"
EOF
上述三步依次执行完毕,环境变量配置完成!!!!
重启服务器,输入mongo 回车就有了。。。。。
注意:
MongoDB使用mongo报错1:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2019-07-18T15:02:35.529+0800 E QUERY [js] Error: couldn‘t connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: ???????????????????????????? :
connect@src/mongo/shell/mongo.js:342:17
在命令行中输入mongo出现连接错误
方法:
首先在命令窗口./mongod,该窗口不要关闭,再另起窗口输入mongo启动即可‘
mongod 和 mongo 的区别?
mongod 是启用Mongodb进程,可配置路径进行启用 mongod --dbpath ①
mongo 命令是连接数据库服务,即连接服务器,可以通过端口进行访问(27017)②
MongoDB使用mongo报错2:
浏览器死活远程访问不了:
未指定访问配置文件,导致未更新
启动命令:指定配置文件启动
3.3 禁用selinux 官方教程有提到selinux对mongodb会产生负面影响,故选择禁用
# 修改config文件
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,wq保存。
# 重启OS
reboot
3.4 关闭防火墙
由于需要做数据迁移,所以直接省事将防火墙直接关了。
# 关闭,并取消开机启动
systemctl stop firewalld systemctl disable firewalld
firewall-cmd --state 查看运行状态
创建管理员用户:
mongodb -mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase
db.createUser({user:"admin",pwd:"123456",roles:["userAdminAnyDatabase"]})
注:添加完用户后可以使用show users或db.system.users.find()查看已有用户
这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭,在admin数据库里操作
认证,返回1表示成功
db.auth("admin","123456")
创建操作用户:
db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: “admin” }]}) 创建操作数据库用
https://blog.csdn.net/u010010606/article/details/79666382?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
6.推荐一款mongodb可视化工具
Robo 3T :https://robomongo.o
部署yapi
npm install -g yapi-cli --registry https://registry.npm.taobao.org yapi server 执行失败--切换到yapi所在路径,./yapi server 即可
填完信息,开始部署
启动yapi:
cd /root/node/bin/my-yapi
node vendors/server/app.js
配置文件:/root/node/bin/my-yapi/config.json
五、部署Supervisor
Supervisor是守护进程服务,在没有守护进程之前存在一些问题:
- 应用程序运行在当前终端发起的子shell中,hangup信号中断后会导致应用退出,我们不可能在长期使用的环境中用一个终端去做长连接。
- 当服务器重启后,还是需要人工连上服务器启动服务。
- 进程出现意外终止,等人为发现再连上去开启,这样的反应显然已经慢了。
5.1 安装
yum install python-setuptools -y easy_install supervisor
5.2 修改配置
# 创建目录/etc/supervisor
mkdir /etc/supervisor
# 创建supervisord.conf模板文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
# 修改文件supervisord.conf
vim /etc/supervisor/supervisord.conf
增加下面的内容,wq保存。
[include] files = conf.d/*.conf
??如果服务已启动,修改配置文件可用“supervisorctl reload”命令来使其生效)
# 创建目录/etc/supervisor/conf.d/
mkdir -p /etc/supervisor/conf.d/
# 修改文件YApi.conf
vim /etc/supervisor/conf.d/YApiGhost.conf
增加下面的内容,wq保存。
[program: YApiGhost] command=node vendors/server/app.js ; 运行程序的命令 directory=/root/my-yapi ; 命令执行的目录 autorestart=true ; 程序意外退出是否自动重启 stderr_logfile=/var/log/YApiGhost.err.log ; 错误日志文件 stdout_logfile=/var/log/YApiGhost.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT
5.3 启动
# 根据supervisord.conf启动守护进程
supervisord -c /etc/supervisor/supervisord.conf
# 查看进程
ps -ef | grep YApiGhost
如果存在YApiGhost 进程则代表运行成功。
5.4 设置为开机启动
# 修改文件supervisord.service
vim /usr/lib/systemd/system/supervisord.service
添加下面的内容,wq保存。
[Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
# 开机启动
systemctl enable supervisord