恺轩说 發表於 2023-5-27 00:00:00

详解把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]
查看完整版本: 详解把Node.js项目部署到阿里云服务器(CentOs)