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

部署Node.js项目到阿里云CentOS 7.x(Linux)

第一步,安装node.js1. 把yum更新到最新版本yum -y update 2. 对开发工具升级安装yum -y groupinstall "Development Tools" 3. 下载安装...

centos 搭建node服务器

安装node (名词:wget) 1. 安装必要的make以及gcc,gcc-c++编译器 yum -y install make gcc gcc-c++ 2. 安装wget ...

nodejs:在windows系统中安装node.js 及第一个程序Hello World

今天开始学习node.js,所以在windows 8 中安装了node.js,并不会遇到什么问题, 首先,你需要在nodejs.org中下载nodejs的windows 版本, 当前版本是v0...

在CentOS 7上安装.NET Core R2跑Hello World

前言在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下。原本想等发布正式版的时候在linux系统上试试,可能还需要一段时间,刚好有空可以折腾一下。由于之前安装的Ubunt...
  • SeayXu
  • SeayXu
  • 2016年06月08日 12:17
  • 1441

node.js学习之输出Hello World

//导入一个http对象 var http = require('http'); //创建一个http服务器,参数request表示客户端向服务端发送的请求,response表示服务端向客户端的回应 ...

webstorm8 +node.js +express4.x 环境搭建 写一个hello world

今天向大家

ZooKeeper 安装部署及hello world

ZooKeeper  安装部署及hello world 先给一堆学习文档,方便以后查看 官网文档地址大全: OverView(概述) http://zookeeper.apache.o...

ZooKeeper 笔记(1) 安装部署及hello world

原文出自:http://www.cnblogs.com/yjmyzz/p/4587663.html 先给一堆学习文档,方便以后查看 官网文档地址大全: OverView(概述) ...

node之第一个hello world

用node实现我们的第一个hello world~!

node初探(很全的hello world工程)

1、使用node的简单体会         这两天稍微学了一下node,体会了一下传说中的异步编程语言,然后写了个简单的小demo。         node给我的感觉首先是短小精悍,开启一个服务...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world
举报原因:
原因补充:

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