在服务器上部署自己的nodejs应用(一)


2019-3-16 nodejs CentOS7 Pm2 MongooDB

更新服务器

yum update
1

安装 nvm---安装 node

yum groupinstall 'Development Tools' #安装构建工具
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
# 安装nvm 完成后关闭打开一次命令行窗口
#输入
nvm --version   #有反应就可以了
nvm ls-remote  #列出可安装版本
nvm install v8.15.1 # 安装具体版本
nvm list # 列出已经安装的版本 和默认版本
nvm use 版本号 # 切换版本
#--注意  切换版本号之后  node-modules  不会共享  也就是全局安装的软件会消失
1
2
3
4
5
6
7
8
9
10

安装 mongoose 数据库

1、添加 MongoDB 的源:

mongodb-org 这个包默认不存在 CentOS 的源里,所以要先添加到我们服务器中:

$ sudo vi /etc/yum.repos.d/mongodb-org.repo
1

然后访问 Install on Red Hat 找到最新的 MongoDB 稳定版本并添加到上面打开的文档中,类似这样:这个是 4.0 的

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
1
2
3
4
5
6

编辑并保存文件,查看服务器源列表中是否已添加成功(留意 mongodb-org-4.0....):

$ yum repolist

# 输出一般如下
. . .
repo id                          repo name
base/7/x86_64                    CentOS-7 - Base
extras/7/x86_64                  CentOS-7 - Extras
mongodb-org-3.2/7/x86_64         MongoDB Repository
updates/7/x86_64                 CentOS-7 - Updates
. . .
1
2
3
4
5
6
7
8
9
10

2、安装 MongoDB:

$ sudo yum install mongodb-org
1

3、启动 MongoDB:

$ sudo systemctl start mongod

1
2

如有需要重新解析改动后的 /etc/mongod.conf 配置文件,可以执行:

$ sudo systemctl reload mongod
1

4、因为 systemctl 并不返回启动结果,所以可以通过以下命令查看是否启动:

$ sudo tail /var/log/mongodb/mongod.log
1

查找是否包含该日志,若出现则表示服务已启动,可以通过 mongo 来开启命令:

. . .
[initandlisten] waiting for connections on port 27017
1
2

5、开机自启动

首先查看是否已启用:

$ systemctl is-enabled mongod; echo $?


# 查看输出是否包含 enabled 字样
. . .
enabled
0
1
2
3
4
5
6
7

若无,可以手动启动:

$ sudo systemctl enable mongod
1

6、导入 example 数据

mongorestore -h 127.0.0.1:27017 -d 创建的数据库名称 --drop #centos上要引入的数据的目录
1

7 创建管理员 和操作员

mongo ...
...
use admin
# 创建管理员
db.createUser({user: "admin",pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
退出  然后使用管理员账号重新登录 创建操作员
# 创建数据操作员
db.createUser({user: "user",pwd: "pwd",roles: [ { role: "readWrite", db: "doracms2" } ]})
1
2
3
4
5
6
7
8

这里要注意 mongo 创建 管理员和用户的方式与其他数据库不一样,最好去读一遍原文档,具体差别就是,mongo 创建只有一个用户,还要为这个用户添加权限。 在使用这个用户登录的时候,各个版本驱动登录使用方式都有细微的差别,比如在 3.x 的某些情况下,在 mongoose 使用用户名密码操作数据库的时候,是要加上 '/authSource=' + 数据库名 + '&w=1' , 然后选项也有所区别,这里要注意。

8 修改配置文件 mongdb.conf

添加在

security:
   auth:true
1
2

如果是在 3.x 版本以上添加

security: authorization: 'enabled'
1
  1. 移除 MongoDB 包

移除之前安装的所有 MongoDB 包

$ sudo yum erase $(rpm -qa | grep mongodb-org)1
1

删除数据文件及日志文件

删除 MongoDB 数据库和日志文件

$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongo
1
2

安装 redis 数据库

yum -y install redis
1

redis 配置文件,路径为/etc/redis.conf

给 Redis 设置密码,取消注释这一行:#requirepass foobared ,foobared 即当前密码,可以自行修改为

requirepass 密码
daemonize yes 设置位后台启动
1
2

然后重启 Redis 服务,使用的命令如下:

sudo systemctl restart redis
1

redis 常用命令

systemctl start redis.service #启动redis服务器

systemctl stop redis.service #停止redis服务器

systemctl restart redis.service #重新启动redis服务器

systemctl status redis.service #获取redis服务器的运行状态

systemctl enable redis.service #开机启动redis服务器

systemctl disable redis.service #开机禁用redis服务器
rm -rf /usr/local/bin/redis* # 卸载redis
1
2
3
4
5
6
7
8
9
10
11
12

安装 PM2 进程管理

npm install pm2 -g # 一定要安装到全局
1

PM2 工具十分强大 ,几乎是前端工程师接私活必不可少的。专门写一篇笔记纪录。

其他要用到的指令

检查端口被哪个进程占用

netstat -lnp|grep 88 #88 请换为你的apache需要的端口,如:80

查看进程的详细信息

ps 1777

杀掉进程

kill -9 1777 #杀掉编号为 1777 的进程(请根据实际情况输入)

列出所有端口

netstat -ntlp

查看端口占用

lsof -i tcp:80