linux 下部署nodejs项目(两种方式)
<p>之前在linux下部署过几次NodeJS,也有些经验,最近也在Q群里有朋友问Node在linux下部署问题,于是总结一下,主要介绍两种不同的部署方式,二进制文件直接解压部署和手动编译安装,一来巩固自己的知识,二来希望能对新手有所帮助。 </p>
<p>
关于在node在linux的部署我认为主要有三种方式,</p>
<p>
第一种就是自己下载源码,手动编译二进制,即是部署过程。</p>
<p>
第二种方法 直接下载二进制文件解压即可。</p>
<p>
第三种方式,使用yum install node或者apt-get install node安装(在linux下 貌似默认源中没有node的程序,这种方式有缺点,安装后的程序版本可能不是最新版的,不推荐这种方式安装)</p>
<p>
<strong>编译源码安装</strong></p>
<p>
需要先安装编译环境 比如 node编译依赖于gcc make gcc-c++ openssl-devel等三方模块,因此需要提前自己先安装依赖(使用 yum -y install gcc make gcc-c++ openssl-devel 即可),还有要确认自己下载的是源码(有同学之前要自己手动编译安装,却找不到configure,文件,结果发现自己下载不是源码,而是二进制包)官网的下载地址中http://nodejs.org/download/ 最后一项才是源码。下载完解压,在linux编译程序一般就分为三步</p>
<p>
1、 进入源码路径,执行里面的 configure文件./configure --prefix=生成的二进制文件路径</p>
<p>
2. 运行make命令,这个是编译过程,运行的时间可能稍长一些</p>
<p>
3、 执行install 命令。如果在第第一步骤中配置的程序安装路径不在系统的环境量PATH中,需要自己添加(下面会介绍在centos下修改环境变量)</p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/aba982afcf2aa524abbb7e9864338a14.jpg"></p>
<p>
下面重点叙述如何通过部署二进制的文件的方式安装NodeJS</p>
<p>
<strong>NodeJS二进制文件的部署安装</strong></p>
<p>
2、首先下载NodeJS的二进制文件,http://nodejs.org/download/。在 Linux Binaries (.tar.gz)行处根据自己系统的位数选择</p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/f6d9e1b4a87f7438b56bcc2684c8bc16.jpg"></p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/1788a1a4a705d3a2b84d5712f404fc42.jpg"></p>
<p>
3、下载后将安装包移动到要安装到的文件夹下,根据个人喜好设置即可</p>
<p>
这里我放在了/home/kun/mysofltware/ 下面,依次执行如下命令,可看到</p>
<div class="jb51code">
<div class="php-article">
<div class="detail-content-wrap">
<table border="0" cellpadding="0" cellspacing="0" class="syntaxhighlighter bash"><tbody><tr>
<td class="gutter">
<p class="line number1 index0 alt2">
1</p>
<p class="line number2 index1 alt1">
2</p>
</td>
<td class="code">
<div class="container">
<p class="line number1 index0 alt2">
<code class="bash functions">cd</code> <code class="bash plain">/home/kun/mysofltware/</code></p>
<p class="line number2 index1 alt1">
<code class="bash functions">ls</code></p>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
解压到当前文件夹下运行</p>
<div class="jb51code">
<div class="php-article">
<div class="detail-content-wrap">
<table border="0" cellpadding="0" cellspacing="0" class="syntaxhighlighter bash"><tbody><tr>
<td class="gutter">
<p class="line number1 index0 alt2">
1</p>
</td>
<td class="code">
<div class="container">
<p class="line number1 index0 alt2">
<code class="bash functions">tar</code> <code class="bash plain">zxvf node-v0.10.26-linux-x64.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code></p>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/11c199f52256118ad93e95a3e61cac10.jpg"></p>
<p>
进入 解压后的目录bin目录下,执行ls会看到两个文件node,npm. 然后执行./node -v ,如果显示出 版本号说明我们下载的程序包是没有问题的。 依次运行如下三条命令</p>
<div class="jb51code">
<div class="php-article">
<div class="detail-content-wrap">
<table border="0" cellpadding="0" cellspacing="0" class="syntaxhighlighter bash"><tbody><tr>
<td class="gutter">
<p class="line number1 index0 alt2">
1</p>
<p class="line number2 index1 alt1">
2</p>
<p class="line number3 index2 alt2">
3</p>
</td>
<td class="code">
<div class="container">
<p class="line number1 index0 alt2">
<code class="bash functions">cd</code> <code class="bash plain">node-v0.10.26-linux-x64</code><code class="bash plain">/bin</code></p>
<p class="line number2 index1 alt1">
<code class="bash functions">ls</code></p>
<p class="line number3 index2 alt2">
<code class="bash plain">.</code><code class="bash plain">/node</code> <code class="bash plain">-</code><code class="bash functions">v</code></p>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/bb200b949bdcf18d5e11d2b7387167f3.jpg"></p>
<p>
因为 /home/kun/mysofltware/node-v0.10.26-linux-x64/bin这个目录是不在环境变量中的,所以只能到该目录下才能node的程序。如果在其他的目录下执行node命令的话 ,必须通过绝对路径访问才可以的</p>
<p>
如果要在任意目录可以访问的话,需要将node 所在的目录,添加PATH环境变量里面,或者通过软连接的形式将node和npm链接到系统默认的PATH目录下的一个,以下别介绍</p>
<p>
<strong>软连接方式</strong></p>
<p>
在终端执行echo $PATH可以获取PATH变量包含的内容,系统默认的PATH环境变量包括/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin: ,冒号为分隔符。所以我们可以将node和npm链接到/usr/local/bin 目录下如下执行</p>
<div class="jb51code">
<div class="php-article">
<div class="detail-content-wrap">
<table border="0" cellpadding="0" cellspacing="0" class="syntaxhighlighter bash"><tbody><tr>
<td class="gutter">
<p class="line number1 index0 alt2">
1</p>
<p class="line number2 index1 alt1">
2</p>
<p class="line number3 index2 alt2">
3</p>
</td>
<td class="code">
<div class="container">
<p class="line number1 index0 alt2">
<code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/home/kun/mysofltware/node-v0</code><code class="bash plain">.10.26-linux-x64</code><code class="bash plain">/bin/node</code> <code class="bash plain">/usr/local/bin/node</code></p>
<p class="line number2 index1 alt1">
</p>
<p class="line number3 index2 alt2">
<code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/home/kun/mysofltware/node-v0</code><code class="bash plain">.10.26-linux-x64</code><code class="bash plain">/bin/npm</code> <code class="bash plain">/usr/local/bin/npm</code></p>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
通过如此,就可以访问Node了,同时node部署也已经完毕。</p>
<p>
<strong>环境变量配置。</strong></p>
<p>
在node目录下执行pwd 获取node所在的目录,要把这个目录添加到PATH环境变量</p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/9f18d5faec7c524dfb734269ab087b77.jpg"></p>
<p>
执行su 输入密码切换到root用户。</p>
<div class="jb51code">
<div class="php-article">
<div class="detail-content-wrap">
<table border="0" cellpadding="0" cellspacing="0" class="syntaxhighlighter bash"><tbody><tr>
<td class="gutter">
<p class="line number1 index0 alt2">
1</p>
</td>
<td class="code">
<div class="container">
<p class="line number1 index0 alt2">
<code class="bash functions">vi</code> <code class="bash plain">/etc/profile</code></p>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/ffc0e3e0dbdfd6ad816b53e784080997.jpg"></p>
<p>
(如果不熟悉vi的,centos还有个方便的类似记事本的东东。gedit执行gedit /etc/profile可以打开进行编辑)</p>
<p>
在vi 环境下 点击 i 进入插入状态,在export PATH的上一行添加如下内容 (环境变量中的内容 是以冒号分割的)</p>
<div class="jb51code">
<div class="php-article">
<div class="detail-content-wrap">
<table border="0" cellpadding="0" cellspacing="0" class="syntaxhighlighter bash"><tbody><tr>
<td class="gutter">
<p class="line number1 index0 alt2">
1</p>
</td>
<td class="code">
<div class="container">
<p class="line number1 index0 alt2">
<code class="bash plain">PATH=$PATH:</code><code class="bash plain">/home/kun/mysofltware/node-v0</code><code class="bash plain">.10.26-linux-x64</code><code class="bash plain">/bin</code></p>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
编辑完成后按Esc键 然后输入 :wq 按回车保存退出。</p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/24a9b178d686976c44f392e9533fe5bf.jpg"></p>
<p>
退出vi ,执行</p>
<p>
source /etc/profile 可以是变量生效,</p>
<p>
然后执行 echo $PATH ,看看输出内容是否包含自己添加的内容</p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/bdd4b9c2890c282ff368e2cb14b0a874.jpg"></p>
<p>
然后到任意目录下去执行一次执行node -v npm -v</p>
<p>
<img title="linux 下部署nodejs项目(两种方式)" alt="linux 下部署nodejs项目(两种方式)" src="https://zhuji.jb51.net/uploads/img/202305/dd12df471c2a9c80bfb500378908f230.jpg"></p>
<p>
ok 搞定了。</p>
<p>
需要注意的是,在我的安装过程中,通过source /etc/profile,只是让变量临时生效了,如果此时我在开一个终端的 话运行node会提示找不到命令,这个问题 重启或者注销之后得到了解决,我记得之前玩Ubuntu的时候 是没有这个问题的。看来linux知识还是欠缺啊。</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
原文链接:http://www.cnblogs.com/dubaokun/p/3558848.html</p>
頁:
[1]