0
点赞
收藏
分享

微信扫一扫

MongoDB+NodeJS 环境搭建小记


帮工作室部署了一个 MongoDB+Nodejs站点,简单记录一下吧

一、软件准备

1、安装 nodejs

因为debian8 镜像源里面的 nodejs 包过旧,遂采用如下方式安装



1

2



curl -sL https://deb.nodesource.com/setup_5.x | bash

    # 使用这个脚本进行自动安装,其实就是在 /etc/apt/sources.list.d 目录下面帮你添加了node官方的源



2、安装pm2

pm2 是一个很好玩的 nodejs 进程管理器



1



npm install -g pm2



3、安装 mongoDB



1

2

3



apt-get update


apt-get install mongodb



二、配置细节

1、MongoDB 设置管理员用户

mongodb默认是无需认证模式,有点安全意识的孩子都知道这样不好



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19



$ mongo

    # 直接运行mongoDB的客户端

    # 以下命令在mongoDB客户端中执行


> use admin          

    # 使用 admin 这个库


> show collections;

  system.indexes

  system.users      

    # 查看collections,如果没有这两个collection,可以使用 db.createCollection 创建


> db.addUser('admin','yourpassword');

    # 添加了‘admin’用户,密码是 ’yourpassword‘


> db.system.users.find();  

    # 检查是否有数据了

> exit

    # 退出



然后修改mongoDB的配置文件,打开 身份认证 选项



1

2

3

4

5

6

7



sudo vim /etc/mongodb.conf

    # 编辑mongodb的配置文件

    # 将下面这一行的注释去掉

    auth = true


sudo service mongodb restart

    # 重启 mongo 服务



2、MongoDB 新建用户以及数据库



1

2

3

4

5

6

7

8

9

10

11

12

13

14



$ mongo

    # 打开mongodb客户端,自动连接到本地服务器

    # 下列命令都在客户端内完成


> use admin

> db.auth('admin','yourpassword')

    # 先 use admin,然后完成验证,之后才可以进行管理操作

> show dbs

    # 试一下,看能不能看到所有库


> use NewDB

    # 这样直接新建了一个数据库,但是因为里面没有数据,如果此时退出,这个库会被自动删除

> db.addUser('test_user','test_pass')

    # 给 NewDB 添加用户,默认这个用户是有读写权限的



3、MongoDB 导入数据库备份文件

这里假设备份文件所在目录是 /tmp/bak



1

2



mongorestore -d [database] -u [username] -p  --directoryperdb /tmp/bak

    # 然后提示输入密码,按照惯例,输入过程是没有回显的



4、安装 Nodejs 项目依赖的包

如果项目根目录下面有 package.json 依赖描述文件,直接在该目录下运行 npm install 即可

5、修改数据库连接代码

如果有数据库连接的配置文件就很好了,没有的话,要自己去代码里修改,常见于app.js



1

2

3

4

5

6



# filename: app.js

var dbUrl = 'mongodb://[username]:[password]@localhost:27017/[database]';

    # 这种是带用户名密码的连接


var dbUrl = 'mongodb://localhost:27017/[database]';

    # 这种是对应服务端无需验证的情况



三、 pm2 开机自启

类似于那些独立安装的 tomcat ,这边肯定要使用低权限用户运行



1

2

3

4

5

6

7

8

9

10

11



chown -R www-data:www-data /var/www/YourProject

    # 设置好文件权限


vim /etc/rc.local

    # 在 exit 0 之前添加下面这行命令


  su - www-data -s /bin/sh -c 'pm2 start /var/www/YourProject/app.js' &  

    # 这是采用的pm2,之后随时可以通过 su - www-data -s /bin/sh -c 'pm2 list' 来查看运行中的nodejs进程信息


    #下面是另一种更原始的方案,没有使用pm2,请将执行日志重定向到需要的位置  

  su - www-data -s /bin/sh -c 'node /var/www/YourProject/app.js' >/dev/null &



参考资料:​​mongodb 添加用户及权限设置详解​​


举报

相关推荐

0 条评论