阿里云部署 nodejs+mongoDB 傻瓜教程

写在前面的话:把项目部署到阿里云上之前,我也在网上搜过很多教程,所有的教程几乎都是大概有点儿基础的人才能看得懂的,相类似我这样的,在本机上写完代码就完全不知道怎么办的人,看到教程直接就开始上yum...之类的代码,甚至都不知道要写到哪里去,所以在完成我自己的这个项目之后,写一个像这样子的傻瓜教程,希望很多初学者可以按着步骤能够找到下一个按键或者打字的地方在哪里……

目录

一、阿里云申请/购买服务器

二、下载及安装putty和Xftp

三、为云服务器安装环境

01. 连接云服务器

02. 安装node.js

03. 安装mongoDB

四、上传代码

五、启动应用

六、大功告成

一、阿里云申请/购买服务器

01. 进入阿里云官方网站,找到云服务器ECS。阿里云服务器

02. 重点看这里,由于是个人小网站,就没有必要买那么贵的啦,这个1核1G的就可以了。每年330块钱,折合每个月不超过30块。操作系统我选的是centOS 6.5。点击立即购买。

03. 点击立即购买之后进入到确认订单页, 会有一个设置密码。这个密码设置好之后要记住,待会儿要用到。设好密码之后点击去下单。

04. 好了,去付钱吧。

05. 买好云服务器之后,你在阿里云的首页,登陆之后可以直接点击右上角的控制台

06. 在左边点击云服务器ECS

07. 找到你刚才购买地区,运行中字样的图标。我买的是云服务器,有一个在运行中,就是这个,点击

运行中1

8. 这时候你就可以看到你买到的云服务器了,注意我用红框框出来的位置,这个IP地址就是你的公网IP,后面要用到。

二、下载及安装putty和Xftp

putty 是用于连接你手头上这台电脑以及你刚才购买的阿里云服务器,没有这个软件,你都不知道上哪儿敲部署教程里面的那些个字母(没错,我就是白痴到竟然在这个步骤走了许多弯路)

Xftp 用于部署好之后把你本地写好的程序上传到云服务器

tips:putty直接下载就可以用了,Xftp下载好之后安装,一直下一步也可以了。

三、为云服务器安装环境

01. 连接云服务器

A.

双击putty

B.

出现的这个页面填写红框内信息,host name那里填写刚才申请的阿里云的公网IP,port一般是22,选择SSH,only on clean exit。点击open

C.

然后进入这个状态,

输入root,回车。这是它会让你输入密码(tips),回车。出现

的时候,表示连接远程服务器成功了。

tips:注意linux系统,输入密码的时候不会出现任何字符包括空格或者*号,放心吧不是电脑坏了。当初我做的时候从来没有用过linux系统,一度怀疑我自己是不是又哪里操作错了,导致没反应

02. 把yum更新到最新版本:

yum -y update

03. 我们将使用最新源代码构建Node.js,要进行软件的安装,需要一组用来编译源代码的开发工具:

yum -y groupinstall "Development Tools"

04. 安装node.js

A.

开始安装Node.js,先进入/usr/src文件夹,这个文件夹通常用来存放软件源代码:

cd /usr/src

B.从Node.js的站点中获取压缩档源代码, 我选择的版本为v6.9.1:

wget http://nodejs.org/dist/v6.9.1/node-v6.9.1.tar.gz

tips:以上安装nodejs的地址所包含的版本号,你需要跟根据不本地配置使用的nodejs版本来决定,先找到自己的版本号,然后把以上地址的‘6.9.1’替换成你使用的版本号

C.

解压缩源文件,并且进入到压缩后的文件夹中:

tar zxf node-v6.9.1.tar.gzcd node-v6.9.1

D.

执行配置脚本来进行编译预处理:

./configure

E.

开始编译源代码

make

F.

当编译完成后,我们需要使之在系统范围内可用, 编译后的二进制文件将被放置到系统路径,默认情况下,Node二进制文件应该放在/user/local/bin/node文件夹下

make install

G.

现在已经安装了Node.js, 可以开始部署应用程序。首先要使用Node.js的应用管理模块,pm2(用于启动程序并在需要时重启非常有用的模块):

npm -g install pm2

H.

建立超级链接, 不然 sudo node 时会报 "command not

found"

sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/lib/node /usr/lib/node sudo ln -s /usr/local/bin/npm /usr/bin/npm

05. 安装mongoDB(数据库)

A.

进入文件夹/usr/local,下载mongodb源代码:

cd /usr/localwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz

tips:同样,以上mongoDB安装的地址所涉及的版本号,也请根据你本地安装的版本进行更改

B.

解压安装包,重命名文件夹为mongodb

tar zxvf mongodb-linux-x86_64-3.2.11.tgzmv mongodb-linux-x86_64-2.4.9mongodb

C.

在var文件夹里建立mongodb文件夹,并分别建立文件夹data用于存放数据,logs用于存放日志

mkdir /var/mongodbmkdir /var/mongodb/datamkdir /var/mongodb/logs

D.

打开rc.local文件,添加CentOS开机启动项:

chmod +x /etc/rc.d/rc.local

E.

将mongodb启动命令追加到本文件中,让mongodb开机自启动:

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork

F.

启动mongodb

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork

G.

看到如下信息说明已经安装完成并成功启动:

forked process:18394

tips:数字不一定是要这个数字,是什么数字不重要,出现类似这样的就可以了


F.tips:给mongodb加密码

这一步可以说非常重要也可以说不重要,如果你只是想要尝试一下使用服务器看看自己的应用。其实可以不用加密码就可以用了(可以直接跳过F.tips这个步骤)。

但是如果你的mongo没有加密码,那么你很有可能被扫库程序删光你的数据(网上流传的一中病毒概念的东西,会一次性删光你的数据,再留下联系方式需要你付款索回【不知道对不对,如果有知道的朋友请提示我】),当初我刚开始弄好mongo的时候,就是没有加密码,老是被清光,然后我又一次一次的把数据加回去。(当时看了一下加密码教程,觉得好麻烦啊,我又不是真的要经营网站,只是想看看效果,就没有加密码)

首先我们进入mongo,添加帐号密码

mongo

进入数据库admin

use admin

添加账号密码

db.createUser({user: "test",pwd: "123", roles: ["root"]})

返回Successfully added user: { "user" : "test",

"roles" : [ "root" ] }说明用户创建成功了。

退出(按ctrl + c)

接下来我们要打开mongo配置文件为需要验证用户才能登陆

先关闭mongo服务

sudo service mongod stop

修改配置文件。

sudo vim /etc/mongod.conf

长这样


我们加上

security:

authorization:enabled

后长这样


启动mongo服务

sudoservice mongod start

再次进入mongo(这次只是尝试能不能成功登陆)

useadmin

db.auth("test","123")

返回1表示登陆成功了。(同样的,你的程序连接数据库的时候应该要写好相应的用户名密码,不然程序连不上库哦)

继续tips:程序连接数据库,我的程序使用的是mongoose,那么我用mongoose来举例,如果你们用的是其他的npm包,那就自己去查查资料了哦。

mongodb://:@$:/<数据库名>?authSource=admin

比如说刚才我设置的用户名是test,密码是123,ip地址是192.168.2.2(刚才买的阿里云服务器的外网ip),端口号是27017(没有重新设置的mongo端口号都是27017),想要连接的数据库名是mybase。那么我应该写成

mongodb://test:123@192.168.2.2:27017/mybase?authSource=admin

tips:据说曾经有人设密码的时候密码里有"@"字符,这你就要想想你为什么要作死了[doge]


四、上传代码

这个时候云服务器的环境其实已经装好了,可以暂时告别一下putty了

01. 双击打开Xftp

02. 点击新建

03. 出现一下窗口,名称自己取一个项目名称。主机,填写阿里云服务器的公网IP,协议选择SFTP,端口使用22,用户名root,密码为购买阿里云的时候要你记住的密码。最后点击确定。

04. 你将进入你所创建的阿里云内的root文件夹,双击

去到上一层,

找到home文件夹,双击进入。

05. 左边框的文件夹就是你本机电脑中的文件夹,在当中找到你在本机建立的项目的所有文件,点击右键,传输。那么你就可以在下面的框中看到传输的过程。这时候耐心等待传输完毕。

五、启动应用

代码已经上传完了,这时候我们回到putty

01. 进入存放代码的目录,存放在/home/app目录下,server.js为程序入口文件

cd /home/appsudo pm2 start server.js --name app

出现这个画面(或者类似的画面,因为pm2初次启动可能会显示一些更多的画面),恭喜你,部署成功了。

tips:以上home文件夹下的app文件夹为你项目所在的文件夹,server.js为你程序的入口文件,可以根据你的实际情况改变为你实际所写的名称。--name后面跟的是你为你的应用程序取的名字。方便以后你查看你的应用运行情况的时候比较清晰。

tips2:以上其实已经结束了。不过如果你的服务器是多核的,你想通过将node应用集群化的方式来完成利用好自己服务器的多核(由于node是单线程的,直接启动只能利用到一个核,当你的服务器是多核的,只用一个核就有些浪费了,而集群化利用好多核有助于分担应用压力),而pm2就是一个非常方便用来将node 应用集群化的模块。

cd /home/appsudo pm2 start server.js --name app -i 4

后面加上 -i表示将该应用集群化布置为4份,因为我的电脑是4个核的。想要知道你的电脑是几核的。可以这样得出

node>os.cpus().length

得出来的数字是几就是几核。(如果你只是想要帮助自己理解一下部署,而部署并不是你发展的方向,可以跳过tips2)

tips:检视运行中的应用:

sudo pm2 list

如果需要关闭应用,命令如下:

sudo pm2 stop app

如果需要删除应用,命令如下:

sudo pm2 delete app

如果需要查看应用日志,命令如下:

sudo pm2 log app

六、大功告成

这时打开你的浏览器,输入你所购买的阿里云的公网IP 加上 你入口程序server.js中所listen的端口号(比如我阿里云的公网ip为1.1.1.1,listen的端口号为8000,那么我输入的网址就是http://1.1.1.1:8000)打开看看是不是你的网站

happy endding

本教程参考资料(侵删):

01.把Node.js项目部署到阿里云服务器(CentOs) - 推酷

02.开机/etc/rc.local 不执行的问题

03.http://jingyan.baidu.com/article/19192ad820877be53e5707e3.html

其他:

本教程买阿里云服务器的地址系推广地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267