详解把Node.js项目部署到阿里云服务器(CentOs)
<p>最近用node.js开发了一个web项目,开发完打算先部署到我自己买的阿里云学生服务器上,让客户先试用下网站。不知道如何把node.js项目部署到阿里云服务器,在问了飞哥哥之后,在网上找了下教程,部署成功。把教程整合了一下,做下分享。</p>
<p>
<strong>服务器</strong></p>
<p>
服务器选择了阿里云学生服务器:9.92一个月,适合用来个人开发测试。</p>
<p>
<strong>配置:</strong></p>
<p>
<img title="详解把Node.js项目部署到阿里云服务器(CentOs)" alt="详解把Node.js项目部署到阿里云服务器(CentOs)" src="https://zhuji.jb51.net/uploads/img/202305/0bfffcba75e8cc5a5fdd3ff35541599e.jpg"></p>
<p>
系统:CentOS6.5 64位(Linux系统的一种)</p>
<p>
<strong>配置环境配置服务器环境</strong></p>
<p>
1.在阿里云管理控制台把云服务器实例启动</p>
<p>
2.登入服务器:用Putty 或 Xshell(我使用的是xshell):</p>
<p>
下载安装xsheel后,新建会话。</p>
<p>
<img title="详解把Node.js项目部署到阿里云服务器(CentOs)" alt="详解把Node.js项目部署到阿里云服务器(CentOs)" src="https://zhuji.jb51.net/uploads/img/202305/c3e9aa29ce7ff9881ac5a5022b0461ad.jpg"></p>
<p>
<img title="详解把Node.js项目部署到阿里云服务器(CentOs)" alt="详解把Node.js项目部署到阿里云服务器(CentOs)" src="https://zhuji.jb51.net/uploads/img/202305/0b46b0f7cc6ad67221e140f9f841e7a0.jpg"></p>
<p>
登入成功,如图:</p>
<p>
<img title="详解把Node.js项目部署到阿里云服务器(CentOs)" alt="详解把Node.js项目部署到阿里云服务器(CentOs)" src="https://zhuji.jb51.net/uploads/img/202305/e03c9f8783796604835751dd3f8a5f78.jpg"></p>
<p>
3.把yum更新到最新版本:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_25589">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">yum -y update</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
4.我们将使用最新源代码构建Node.js,要进行软件的安装,需要一组用来编译源代码的开发工具:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_357552">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">yum -y groupinstall </code><code class="bash string">"Development Tools"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>安装node.js</strong></p>
<p>
1.开始安装Node.js,先进入/usr/src文件夹,这个文件夹通常用来存放软件源代码:</p>
<p>
2.从Node.js的站点中获取压缩档源代码, 我选择的版本为v0.10.18:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_866841">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">wget http:</code><code class="bash plain">//nodejs</code><code class="bash plain">.org</code><code class="bash plain">/dist/v0</code><code class="bash plain">.10.18</code><code class="bash plain">/node-v0</code><code class="bash plain">.10.18.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
3.解压缩源文件,并且进入到压缩后的文件夹中:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_911440">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">tar</code> <code class="bash plain">zxf node-v0.10.18.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">cd</code> <code class="bash plain">node-v0.10.18</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
4.执行配置脚本来进行编译预处理:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_107502">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">.</code><code class="bash plain">/configure</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
5.开始编译源代码</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_909408">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">make</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
6.当编译完成后,我们需要使之在系统范围内可用, 编译后的二进制文件将被放置到系统路径,默认情况下,Node二进制文件应该放在/user/local/bin/node文件夹下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_421392">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
7.现在已经安装了Node.js, 可以开始部署应用程序, 首先要使用Node.js的模块管理器npm安装Express middleware 和forever(一个用来确保应用程序启动并且在需要时重启的非常有用的模块):</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_272600">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">npm -g </code><code class="bash functions">install</code> <code class="bash plain">express forever</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
8.建立超级链接, 不然 sudo node 时会报 "command not found"</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_530271">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/bin/node</code> <code class="bash plain">/usr/bin/node</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/lib/node</code> <code class="bash plain">/usr/lib/node</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/bin/npm</code> <code class="bash plain">/usr/bin/npm</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/bin/node-waf</code> <code class="bash plain">/usr/bin/node-waf</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/bin/forever</code> <code class="bash plain">/usr/bin/forever</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>安装mongodb(在项目中使用的数据库)</strong></p>
<p>
1.安装说明:</p>
<ul>
<li>
系统环境:Centos-6.5</li>
<li>
安装软件:mongodb-linux-x86_64-2.4.9.tgz</li>
<li>
下载地址:http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz</li>
<li>
上传位置:/usr/local/</li>
<li>
软件安装位置:/usr/local/mongodb</li>
<li>
数据存放位置:/var/mongodb/data</li>
<li>
日志存放位置:/var/mongodb/logs</li>
</ul>
<p>
2.进入文件夹/usr/local,下载mongodb源代码:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_934996">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cd</code> <code class="bash plain">/usr/local</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">wget http:</code><code class="bash plain">//fastdl</code><code class="bash plain">.mongodb.org</code><code class="bash plain">/linux/mongodb-linux-x86_64-2</code><code class="bash plain">.4.9.tgz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
3.解压安装包,重命名文件夹为mongodb</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_759541">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">tar</code> <code class="bash plain">zxvf mongodb-linux-x86_64-2.4.9.tgz </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">mv</code> <code class="bash plain">mongodb-linux-x86_64-2.4.9 mongodb</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
4.在var文件夹里建立mongodb文件夹,并分别建立文件夹data用于存放数据,logs用于存放日志</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxhtml" id="highlighter_813873">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xhtml plain">mkdir /var/mongodb</code>
</div>
<div class="line number2 index1 alt1">
<code class="xhtml plain">mkdir /var/mongodb/data</code>
</div>
<div class="line number3 index2 alt2">
<code class="xhtml plain">mkdir /var/mongodb/logs</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
5.打开rc.local文件,添加CentOS开机启动项:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_571496">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">vim </code><code class="bash plain">/etc/rc</code><code class="bash plain">.d</code><code class="bash plain">/rc</code><code class="bash plain">.</code><code class="bash functions">local</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
6.将mongodb启动命令追加到本文件中,让mongodb开机自启动:</p>
<p>
</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code86014">
<br>
/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork</div>
<p>
</p>
<p>
7.启动mongodb</p>
<p>
</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code86014">
<br>
/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork</div>
<p>
</p>
<p>
8.看到如下信息说明已经安装完成并成功启动:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_339800">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">forked process: 18394</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">all output going to: </code><code class="bash plain">/var/mongodb/logs/log</code><code class="bash plain">.log</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>上传代码</strong></p>
<p>
上传代码可以考虑使用ftp(xftp、sftp等)、svn、git。我用的是xftp。</p>
<p>
下载安装xftp后,启动xftp,新建会话:</p>
<p>
<img title="详解把Node.js项目部署到阿里云服务器(CentOs)" alt="详解把Node.js项目部署到阿里云服务器(CentOs)" src="https://zhuji.jb51.net/uploads/img/202305/c90f77b0756cb628054297895e482888.jpg"></p>
<p>
登入成功,如图:</p>
<p>
<img title="详解把Node.js项目部署到阿里云服务器(CentOs)" alt="详解把Node.js项目部署到阿里云服务器(CentOs)" src="https://zhuji.jb51.net/uploads/img/202305/266ed7bf2014fa0381aa030c535e7444.jpg"></p>
<p>
我把代码上传到了/home目录文件夹下。</p>
<p>
<strong>启动应用</strong></p>
<p>
1.进入存放代码的目录,存放在/home/app目录下,server.js为程序入口文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_459848">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cd</code> <code class="bash plain">/home/app</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">sudo</code> <code class="bash plain">forever start server.js</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
2.检视运行中的应用:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_337917">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">forever list</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
3.如果需要关闭应用,命令如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_358793">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">forever stop 0</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
自此,没有意外的话,项目部署成功。</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
原文链接:https://segmentfault.com/a/1190000004051670</p>
頁:
[1]