在服务器上部署自己的nodejs应用(一)
更新服务器
yum update
安装 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 不会共享 也就是全局安装的软件会消失
2
3
4
5
6
7
8
9
10
安装 mongoose 数据库
1、添加 MongoDB 的源:
mongodb-org
这个包默认不存在 CentOS 的源里,所以要先添加到我们服务器中:
$ sudo vi /etc/yum.repos.d/mongodb-org.repo
然后访问 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
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
. . .
2
3
4
5
6
7
8
9
10
2、安装 MongoDB:
$ sudo yum install mongodb-org
3、启动 MongoDB:
$ sudo systemctl start mongod
2
如有需要重新解析改动后的 /etc/mongod.conf 配置文件,可以执行:
$ sudo systemctl reload mongod
4、因为 systemctl 并不返回启动结果,所以可以通过以下命令查看是否启动:
$ sudo tail /var/log/mongodb/mongod.log
查找是否包含该日志,若出现则表示服务已启动,可以通过 mongo
来开启命令:
. . .
[initandlisten] waiting for connections on port 27017
2
5、开机自启动
首先查看是否已启用:
$ systemctl is-enabled mongod; echo $?
# 查看输出是否包含 enabled 字样
. . .
enabled
0
2
3
4
5
6
7
若无,可以手动启动:
$ sudo systemctl enable mongod
6、导入 example 数据
mongorestore -h 127.0.0.1:27017 -d 创建的数据库名称 --drop #centos上要引入的数据的目录
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" } ]})
2
3
4
5
6
7
8
这里要注意 mongo 创建 管理员和用户的方式与其他数据库不一样,最好去读一遍原文档,具体差别就是,mongo 创建只有一个用户,还要为这个用户添加权限。 在使用这个用户登录的时候,各个版本驱动登录使用方式都有细微的差别,比如在 3.x 的某些情况下,在 mongoose 使用用户名密码操作数据库的时候,是要加上 '/authSource=' + 数据库名 + '&w=1' , 然后选项也有所区别,这里要注意。
8 修改配置文件 mongdb.conf
添加在
security:
auth:true
2
如果是在 3.x 版本以上添加
security: authorization: 'enabled'
- 移除 MongoDB 包
移除之前安装的所有 MongoDB 包
$ sudo yum erase $(rpm -qa | grep mongodb-org)1
删除数据文件及日志文件
删除 MongoDB 数据库和日志文件
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongo
2
安装 redis 数据库
yum -y install redis
redis 配置文件,路径为/etc/redis.conf
给 Redis 设置密码,取消注释这一行:#requirepass foobared ,foobared 即当前密码,可以自行修改为
requirepass 密码
daemonize yes 设置位后台启动
2
然后重启 Redis 服务,使用的命令如下:
sudo systemctl restart redis
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
2
3
4
5
6
7
8
9
10
11
12
安装 PM2 进程管理
npm install pm2 -g # 一定要安装到全局
PM2 工具十分强大 ,几乎是前端工程师接私活必不可少的。专门写一篇笔记纪录。
其他要用到的指令
检查端口被哪个进程占用
netstat -lnp|grep 88 #88 请换为你的apache需要的端口,如:80
查看进程的详细信息
ps 1777
杀掉进程
kill -9 1777 #杀掉编号为 1777 的进程(请根据实际情况输入)
列出所有端口
netstat -ntlp
查看端口占用
lsof -i tcp:80