CentOS服务器配置Yapi服务

服务器环境

阿里云服务器 centos 7.9

1,环境要求

nodejs(8.17.0+)

MongoDB 版本:(2.6+)

git

2,安装nodejs

建议使用nodejs10以上的版本,我这里选择的是v12.0.0版本;跟据2.1查看版本结果:

  • 没安装的从2.3开始
  • 版本过低的从2.2开始
  • 版本适合跳过安装,从“3、安装MongoDB”开始
2.1、查看node版本、npm版本
命令:node -v   结果:v12.0.0
命令:npm -v    结果:6.9.0
2.2、卸载yum安装nodejs
1.工具删除
yum remove nodejs npm -y 

2.手动删除残留
进入 /usr/local/lib 删除所有 node 和 node_modules文件夹
进入 /usr/local/include 删除所有 node 和  node_modules 文件夹
进入 /usr/local/bin 删除 node 的可执行文件node和npm
2.3、nodejs下载地址
https://nodejs.org/en/download/
2.4、进入/usr/local目录,下载v12.0.0版本nodejs
wget https://nodejs.org/dist/v12.0.0/node-v12.0.0-linux-x64.tar.xz
2.5、解压安装包
tar -xvf node-v12.0.0-linux-x64.tar.xz
2.6、改名(不改也行)
mv node-v12.0.0-linux-x64/ nodejs
2.7、加入环境变量,在 /etc/profile 文件末尾增加配置
vim /etc/profile
export PATH=$PATH:/usr/local/nodejs/bin
2.8、执行命令使配置文件生效
source /etc/profile

3、安装MongoDB

3.1、进入/usr/local目录,下载v4.0.0版本MongoDB
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
3.2、解压安装包
tar zxvf mongodb-linux-x86_64-4.0.0.tgz
3.3、重命名文件夹 && 删除压缩包
mv mongodb-linux-x86_64-4.0.0 mongodb && rm -f mongodb-linux-x86_64-4.0.0.tgz
3.4、配置环境变量 && 使其生效
cd / && vim /etc/profile  

export PATH=/usr/local/mongodb/bin:$PATH

source /etc/profile
3.5、查看mongodb版本,如下结果表示环境变量配置成功
// 命令
mongod --version 

//  结果
db version v4.0.0
git version: 3b07af3d4f471ae89e8186d33bbb1d5259597d51
allocator: tcmalloc
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64
3.6、创建数据库目录和日志目录
cd /usr/local/mongodb   

mkdir db && mkdir log && touch log/mongodb.log
3.7、创建mongodb配置文件
//命令
vim /usr/local/mongodb/mongodb.conf 


//在mongodb.conf文件中添加如下内容:
--------------------------------------------------------
# 端口
port=27017

# 数据库存文件存放目录
dbpath=/usr/local/mongodb/db

# 日志文件存放路径
logpath=/usr/local/mongodb/log/mongodb.log

# 使用追加的方式写日志
logappend=true

# 以守护进程的方式运行,创建服务器进程
fork=true

# 最大同时连接数
maxConns=100

# 不启用验证
noauth=true
#auth=true

# 每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)
# 即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
journal=true

# 存储引擎有mmapv1、wiretiger、mongorocks
storageEngine=wiredTiger

# 这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
bind_ip=0.0.0.0
--------------------------------------------------------
3.8、进入/usr/local/mongodb目录 mongodb命令查看是否启动成功
// 启动
./bin/mongod -f mongodb.conf  
// 显示如下:
    about to fork child process, waiting until server is ready for connections.
    forked process: 7502
    child process started successfully, parent exiting

// 停止
./bin/mongod --shutdown -f mongodb.conf 
// 显示如下:
    killing process with pid: 7502

// 查看mongod进程状态
ps -ef|grep mongod 
3.9、使用service服务启动mongod
// 命令
cd / && vim /etc/init.d/mongod 

// 添加内容如下
--------------------------------------------------------

#!/bin/sh
#chkconfig:

#MogoDB home directory 
MONGODB_HOME=/usr/local/mongodb

#mongodb command  
MONGODB_BIN=$MONGODB_HOME/bin/mongod

#mongodb config file
MONGODB_CONF=$MONGODB_HOME/mongodb.conf

#mongodb PID
MONGODB_PID=/var/run/mongo.pid

#set open file limit
SYSTEM_MAXFD=65535

MONGODB_NAME="mongodb"
. /etc/rc.d/init.d/functions

if [ ! -f $MONGODB_BIN ]
    then
        echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! "  
        exit
fi

start(){
    ulimit -HSn $SYSTEM_MAXFD
    $MONGODB_BIN -f "$MONGODB_CONF"
    ret=$?
    if [ $ret -eq 0 ]; then
        action $"Starting $MONGODB_NAME: " /bin/true
    else
        action $"Starting $MONGODB_NAME: " /bin/false
    fi
}


stop(){
    PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l)
    if [[ $PID -eq 0  ]];then
        action $"Stopping $MONGODB_NAME: " /bin/false
        exit
    fi
    kill -HUP `cat $MONGODB_PID`
    ret=$?
    if [ $ret -eq 0 ]; then
        action $"Stopping $MONGODB_NAME: " /bin/true
        rm -f $MONGODB_PID
    else
        action $"Stopping $MONGODB_NAME: " /bin/false
    fi
}

restart() {
    stop
    sleep 2
    start
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status $prog
        ;;
    restart)
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
esac
--------------------------------------------------------
3.10、wq保存mongod文件后service命令
chmod +x /etc/init.d/mongod  // 添加权限

service mongod start       // 启动服务
service mongod restart     // 重启服务
service mongod stop        // 停止服务
3.11、配置系统服务启动mongod
// 命令
vim /usr/lib/systemd/system/mongod.service

// 添加内容如下
--------------------------------------------------------
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
--------------------------------------------------------

//系统服务命令
chmod 754 /lib/systemd/system/mongod.service //添加权限

systemctl status mongod.service    // 查看启动状态
systemctl start mongod.service     // 启动服务
systemctl restart mongod.service   // 重启服务
systemctl stop mongod.service      // 停止服务
3.12、开机启动项
// 查看开机自启项
// 左边是服务名称,右边是状态,enabled是开机启动,disabled是开机不启动
systemctl list-unit-files

// 过滤查看开机启动项
systemctl list-unit-files | grep enabled
systemctl list-unit-files | grep mongod

// 启用 | 禁用 开机启动
systemctl enable mongod    // 启用
systemctl disable mongod   // 禁用

4、安装git

yum -y install git

5、安装YApi

5.1、开始搭建YApi,安装命令
// 该命令需要root权限,并且时间会有点长
npm install -g yapi-cli --registry https://registry.npm.taobao.org
5.2、启动服务
yapi server

// 之后根据提示访问地址通过网页配置
在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip  
5.3、在线部署
  • 在浏览器访问 <服务器公网IP>:9090
  • 根据提示配置,如果mongodb数据库开启了权限认证,需要开启下图的数据库认证,并且输入数据库账号,密码
image.png
  • 填写完信息后,点击“开始部署”,最后出现如下结果串,部署成功(管理员密码可以登录后,在个人中心中修改)。
依赖库安装完成,正在初始化数据库mongodb...
 
> yapi-vendor@1.10.2 install-server /my-yapi/vendors
>  node server/install.js


 log: mongodb load success...

 初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"

部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问
node vendors/server/app.js
  • 启动Yapi服务
# 切换到部署目录下 
cd /root/my-yapi
# 启动服务 
node vendors/server/app.js
  • 访问http://部署YApi服务器的IP:3000/login


    image.png

6、PM2守护服务进程

6.1、安装pm2
// 更换npm淘宝镜像源
npm config set registry https://registry.npm.taobao.org
// 安装pm2
npm install pm2 -g
6.2、pm2启动yapi服务
cd /root/my-yapi  // cd yapi部署路径
pm2 start "vendors/server/app.js" --name yapi //启动服务

// 出现如下结果串表明启动成功
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /root/my-yapi/vendors/server/app.js in fork_mode (1 instance)
[PM2] Done.
┌─────┬─────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name    │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼─────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ yapi    │ default     │ 1.9.2   │ fork    │ 8333     │ 0s     │ 0    │ online    │ 0%       │ 11.7mb   │ root     │ disabled │
└─────┴─────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────
6.3、pm2管理yapi服务命令
pm2 info yapi       //查看服务信息
pm2 stop yapi       //停止服务
pm2 restart yapi    //重启服务

7、开始使用

1.在浏览器访问 <服务器公网IP>:3000 就可以开始使用yapi了
2.点击登录
    账号:<在线部署时填写的管理员邮箱>
    密码:<默认密码:ymfe.org>
3.登录成功后可以修改密码
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容