一,环境配置

Centos7 + Node10.13.0 + MongoDB3.2.22  

安装必备的依赖工具:gcc-c++  wget

yum -y install gcc-c++  wget

 

二,Node安装

1.下载node

 

wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz

2.解压缩node

xz -d node-v10.13.0-linux-x64.tar.xz2 

tar -xf node-v10.13.0-linux-x64.tar  -C /usr/local/

3.配置node和npm

ln -s /usr/local/node-v10.13.0-linux-x64/bin/node /usr/bin/node

ln -s /usr/local/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm

4.检测node是否成功

node -v 

npm -v

 

三,Mongdb安装

1.下载mongodb 3.2.22安装包 这里我是去官网下载的

https://www.mongodb.com/download-center/community

选择自己需要的版本 系统以及安装包

2.解压缩并做软链接

tar -zxvf mongodb-linux-x86_64-rhel70-3.2.22.tgz  -C /usr/local/

mv mongodb-linux-x86_64-rhel70-3.2.22 mongodb-linux-x86_64-3.2.22

ln -s /usr/local/mongodb-linux-x86_64-3.2.22 /usr/local/mongodb

3.配置系统环境变量

vim /etc/profile

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

4.配置mongodb数据存放目录和日志文件夹

mkdir -p /data/{db,logs}

5.配置mongodb的配置文件

cd  /usr/local/mongodb/bin

vim mongodb.conf

 

dbpath = /data/db #数据文件存放目录

logpath = /data/logs/mongodb.log #日志文件存放目录

port = 27017 #端口

fork = true #以守护程序的方式启用,即在后台运行

noauth = true # 不进行安全验证

#auth=true #需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释

bind_ip=0.0.0.0 #允许远程访问,或者直接注释,127.0.0.1是只允许本地访问

6.启动mongodb

./mongod  -f  mongodb.conf

默认端口27017

其他常用命令:

./mongod   --shuitdown

如果需要创建mongodb账号,直接运行mongo命令即可

 

四,Git安装配置

1.下载git

wget https://github.com/git/git/archive/v2.14.1.zip

2.安装依赖

yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

3.解压缩并安装

unzip v2.14.1.zip

cd git-2.14.1

make prefix=/usr/local all 

make prefix=/usr/local install

4.验证安装

git --version

 

五,Yapi安装

1.安装yapi

npm install -g yapi-cli --registry https://registry.npm.taobao.org

ln -s /usr/local/node-v10.13.0-linux-x64/bin/yapi  /usr/bin/yapi

2.启动yapi

yapi server &     # 需在后台启动 退出终端不要直接关闭 使用exit退出

打开浏览器初始化: 默认端口9090 

如果要修改端口编辑下面配置

/usr/local/node-v10.13.0-linux-x64/lib/node_modules/yapi-cli/src/commands/server.js 

https://127.0.0.1:9090
初始化成功后会有 管理员账号和默认密码

初始化管理员账号成功,账号名:"XXXX@admin.cn",密码:"spacer.gifymfe.org"
3.启动服务

进入my-yapi目录 启动服务

node vendors/server/app.js &

 

部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问

 

五,常见问题

使用xshell服务,当关闭xshell 服务也随之关闭

解决方式:部署PM2

1.安装pm2

npm install -g pm2

2.连接配置pm2

ln -s /usr/local/node-v10.13.0-linux-x64/bin/pm2 /usr/bin/pm2

3.在项目中添加配置文件processes.json

自定义:

 

{

   "apps" : [{

     "name" : "Yapi",

     "script": "node ./my-yapi/vendors/server/app.js",

     "cwd": "./",

     "watch":[

         "server",

         "static",

         "test",

         "exts",

         "common"

     ]

     }]

}

4.在项目目录下运行即可

pm2 start processes.json

 

 

PM2常用命令

pm2 start app.js -i max  # 根据有效CPU数目启动最大进程数目

pm2 start app.js -i 3      # 启动3个进程

pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster

pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)

pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone

pm2 stop serverone       # 停止 serverone 进程

pm2 start app.json        # 启动进程, 在 app.json里设置选项

pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数

pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件,你也可以执行用其他语言编写的app  ( fork 模式):

pm2 start my-bash-script.sh    -x --interpreter bash

pm2 start my-python-script.py -x --interpreter python

pm2 start app.js -i 4 #后台运行pm2,启动4个app.js 

                              # 也可以把'max' 参数传递给 start

                              # 正确的进程数目依赖于Cpu的核心数目

pm2 start app.js --name my-api # 命名进程

pm2 list               # 显示所有进程状态

pm2 monit              # 监视所有进程

pm2 logs               #  显示所有进程日志

pm2 stop all           # 停止所有进程

pm2 restart all        # 重启所有进程

pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)

pm2 stop 0             # 停止指定的进程

pm2 restart 0          # 重启指定的进程

pm2 startup            # 产生 init 脚本 保持进程活着

pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)

pm2 delete 0           # 杀死指定的进程

pm2 delete all         # 杀死所有进程


六,mongodb数据拷贝

新部署环境如果想用老的数据,mongodb支持源数据目录直接拷贝,前提是数据库版本必须一致。

拷贝前,删除初始化数据文件,将老的数据文件拷贝到新目录中即可,拷贝前注意删除lock结尾的文件以及diagnostic.data目录,否则可能导致数据库启动失败。

完成后不需要重启初始化yapi server 直接启动node服务即可。