CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world

原创 2016年08月29日 01:11:01

写好代码,花钱买了VPS,看着Charges一直上涨却无从下手?记一位新手司机从购买VPS到成功访问的过程

0.购买VPS

首先,选择VPS提供商,部署一个新的服务器(Deploy New Server),我使用的是Vultr提供的VPS
操作系统可以自由选择,我这边使用的是CentOS 7,选择其他操作系统的胖友可以搜一下相应操作系统的部署教程

1.使用PuTTY连接远程VPS

安装PuTTY

打开PuTTY,在 Host Name(or IP address) 那一栏填上VPS提供商给你的IP地址,然后点Open开启一个新会话(也可以点底下的Save保存一下,下次直接双击Saved Sessions中保存的的会话打开就行,无须输入IP)

PuTTY interface

打开后会出现一个Terminal,显示login as: ,这边输入VPS提供商给你的Username,默认应该是root

然后出现root@your ip address ‘s password: ,输入VPS提供商提供的Password(可以在本机上复制,然后在窗口中点击鼠标右键,复制的内容就被粘贴了),然后回车
注意:输入密码的时候不会显示你输入的东西

成功登录

2.准备工作

用yum安装gcc

yum -y install gcc make gcc-c++ openssl-devel wget

3.安装Node.js

这边以v4.5.0版本、使用源码安装为例,也可以使用EPEL

先用cd命令进入到你要安装Node.js的目录

到Node.js官网上复制源码的地址,然后执行:

wget https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz

nodejs website

然后解压提取文件

tar zxvf node-v4.5.0.tar.gz

执行后会生成node-v4.5.0文件夹,cd进入,里面有个configure文件

配置并编译#这步执行得比较久,可以先去喝杯咖啡

./configure
make

然后安装

make install

使用node -v检查是否安装成功

4.安装MongoDB

这边以v3.2.9、使用yum安装为例

MongoDB官网上提供了用yum安装的教程

我写了一篇翻译别人教程的Blog,跟官网上的类似
步骤是类似的,但是我们用官网上的命令进行安装,比较稳妥,那篇翻译的教程仅供理解用

5.给MongoDB添加用户认证

mongo
use db
db.createUser({user:'',pwd:'',roles:[{role:'readWrite',db:'db'}]});  #添加db数据库下的用户,拥有读写权限
db.system.users.find().pretty()  #查看该数据库下所有的用户

记得在admin数据库下添加一个root用户用于以后关闭服务器
即 use admin,role: ‘root’

有关新建用户的更多信息请见这里

添加了用户后,在启动MongoDB时加上–auth参数即可开启用户认证

附上一条mongoose通过用户认证连接db的代码

mongoose.connect('mongodb://username:password@host:port/database?options...');

6.复制你的应用到VPS服务器

如果你的代码还没复制到VPS服务器上,你可以使用git,svn,ftp等方式放上去
我用的是git

安装git,使用yum安装

yum -y install git

然后就可以愉快地使用git clone了

7.开启端口

CentOS 7采用了firewalld防火墙,如果没有开启端口,则外网无法通过ip来访问服务器上的Node应用。

比如Node.js默认用了3000端口,所以我们需要开启相应的端口

查询端口是否开启:

firewall-cmd --query-port=3000/tcp

如果显示no,则没有开启端口

开启端口:

firewall-cmd --add-port=3000/tcp

也可以修改Node监听的端口,比如修改为80端口,然后再开启80端口

8.后台运行

后台运行MongoDB

在启动MongoDB时,加上–fork参数,即可生成一个子进程,当子进程成功运行,则父进程就会被停止,这时候便实现了后台运行MongoDB,可以关闭当前的终端

mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/logs/log.log --logappend --auth --fork

如果要关闭后台MongoDB,则需要通过刚才添加的root用户调用shutdownServer()方法关闭
顺带一提,MongoDB没有正常关闭的话会很麻烦的,有时候还会造成一些严重后果

mongo
use admin
db.auth('usr', 'pwd')  #用root用户登录,usr、pwd为root用户的用户名和密码
db.shutdownServer()

后台运行Node.js

这边后台启动Node.js使用一个Node.js的模块forever,可以输出错误和日志
当然还有其他的方法,比如nohup啥的

全局安装forever

npm install -g forever

cd进入应用程序的目录

如果是普通的Node应用

forever start app.js

如果用的Express

forever start -c 'npm start' ./

有关如何停止forever以及其他操作请参考forever官网及Google

我之前是看CNode社区里的方法直接杀掉Node的进程 pkill node ,可以,很暴力

9.Hello world

至此,你应该可以从外网通过ip+端口访问到你的Node应用了,你也可以绑定个域名之类的

10.附加

开机启动

可以将MongoDB和Node通过编辑/etc/rc.local加入到开机启动中
这里我没有试验过,先挂上一篇教程

Vim

使用Linux免不了的一个问题就是 如何编辑文件
久闻Vim之大名,今日有幸相会

yum -y install vim

其实刚入门的小白用Vim,只要掌握一些基础的操作,用起来也是很爽的

附一个Vim简明教程

参考

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载请注明来源http://blog.csdn.net/azureternite

[NodeJS] 腾讯云 CentOS7.2 部署 Express+MongoDB 项目

第一次部署应用到服务器上,写这篇文章来记录一下基本的流程,以方便以后忘了可以查看,并希望可以帮到同样有疑惑的朋友。环境操作系统: Ubuntu 16.04 腾讯云主机镜像: CentOS 7.2 6...
  • Elliott_Yoho
  • Elliott_Yoho
  • 2016年11月25日 11:39
  • 1837

【CentOS】Vultr虚拟专用服务器Vps的搭建与配置

在实现对外办公或者对外贸易的情况下,可以搭建一个虚拟专用服务器Vps进行网络加速,以达到更好地访问国外节点目的。虚拟专用服务器Vps可以实现这一点。虚拟专用服务器Vps其实就是国内的云主机服务。在搭建...
  • yongh701
  • yongh701
  • 2017年10月27日 09:56
  • 910

CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world

写好代码,花钱买了VPS,看着Charges一直上涨却无从下手?记一位新手司机从购买VPS到成功访问的过程0.购买VPS首先,选择VPS提供商,部署一个新的服务器(Deploy New Server)...
  • azureternite
  • azureternite
  • 2016年08月29日 01:11
  • 1799

MongoDB 的安装

MongoDB简介   MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C+...
  • chen3888015
  • chen3888015
  • 2012年05月28日 11:16
  • 856

Centos 7 安装到移动硬盘

首先,下载Centos 7 镜像文件各大源下载都可以,http://mirrors.163.com/centos/7.0.1406/isos/x86_64/ 下载工具或者百度盘一般都可以达到宽带的满速...
  • u011251014
  • u011251014
  • 2015年11月10日 20:45
  • 1681

JavaFX文档(3)开始JavaFX之旅——1 Hello World

javafxchina JavaFX 教程 中文
  • originer
  • originer
  • 2014年08月02日 15:44
  • 1563

MongoDB全版本下载地址

linux: https://www.mongodb.org/dl/linux/ 注:聪明一点,把链接中的后半部分去掉。主要用于下载老版本的软件。...
  • Bleachswh
  • Bleachswh
  • 2016年12月14日 15:18
  • 2243

mongoDB之windows下安装mongo数据库服务

1、下载mongodb-win32-x86_64-2.2.1到任意一个盘符下或者任意一目录下   2、新建立一个批处理文件,主要用于安装mongoDB的server到服务中: D:\"Program ...
  • dyllove98
  • dyllove98
  • 2013年05月29日 21:16
  • 1205

VPS(centos)部署web项目

转载请标明出处:http://blog.csdn.net/huaiyiheyuan/article/details/53871972这篇可以看作是 Eclipse配置Web项目后续篇一、环境搭建 ...
  • huaiyiheyuan
  • huaiyiheyuan
  • 2016年12月25日 20:02
  • 767

在CentOS VPS上通过SSH安装 Tomcat,VPS 搭建网站之序列二

输入wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz,下载apa...
  • chenbean
  • chenbean
  • 2014年03月22日 22:39
  • 1650
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world
举报原因:
原因补充:

(最多只允许输入30个字)