目录

Node.js的安装和配置

本文以CentOS 6为例,讲述在Linux下安装配置Node.js的过程。

安装

Node安装

Node.js的安装方法有很多种:可从源代码编译安装,可通过发行版的包管理器安装(CentOS需要启用EPEL源),也可从官网下载二进制包手工安装。详情可参考官方说明:Installation

由于Node的开发非常活跃,版本更新很快,第三方软件源的更新不一定及时。而且实际应用中会安装很多包模块,这些包模块同样可手工安装,部分也可以通过包管理器安装,从而可能会导致潜在的冲突。因此,当你决定了某种安装方式后,最好坚持使用它。

这里选择手工安装方式。

从官方下载最新的二进制安装包,如node-v0.10.13-linux-x64.tar.gz,由root安装到/usr/local下:

cd /usr/local/
tar xzvf node-v0.10.13-linux-x64.tar.gz
chown -R root:root node-v0.10.13-linux-x64/

使用时,在环境变量PATH中增加Node的所在路径。如编辑用户的.bashrc,添加:

export PATH=$PATH:/usr/local/node-v0.10.13-linux-x64/bin
export MANPATH=$MANPATH:/usr/local/node-v0.10.13-linux-x64/share/man

全局包的安装

所有的Node包都统一选择npm工具来安装。

对于全局安装的包,需要root权限。

例如,安装express(一个轻量级的web框架):

npm install express -g

npm会将express与node安装在一起,即/usr/local/node-v0.10.13-linux-x64/bin目录下。

普通包的安装

编辑应用的package.json,指定依赖的软件包,如:

  "dependencies": {
    "mongodb": "1.3.9",
    ...
  }

然后执行:

npm install

软件包的相关文件会安装到应用的node_modules目录下。

升级

Node升级

Node的升级很简单,获取新版的软件(如node-v0.10.15-linux-x64.tar.gz),解压到指定目录下,重新设置用户的PATH环境变量即可。

这样做的一个额外好处是,多个版本的Node可以共存,用户可以自由选择想用的版本。

全局包的升级

需要root执行。如升级express:

npm update express -g

普通包的升级

编辑应用的package.json,更新软件包的版本号,如:

  "dependencies": {
    "mongodb": "1.3.11",
    ...
  }

完毕执行:

npm install

npm会自动更新软件包的相关文件。

运行

手工模式

在开发阶段,一般都是手工运行程序。假设当前以一个普通用户nodejs的身份,要开发一个基于express框架的web应用。

首先运行express命令生成基本的代码结构:

express -e -s site

安装所有依赖包:

cd site
npm install

运行:

node app.js

这样,一个简单的web服务就运行起来了。

Init脚本

当应用开发完毕后,最终要象其他服务器那样部署,为此,要编写相关的init控制脚本。

CentOS 6的init系统是Upstart,故这里按照Upstart的机制来编写脚本。其他的init控制系统思路类似,请参考相关文档。

新建配置文件/etc/init/node.conf:

# simple Node.js script

description "Node.js service"

start on runlevel [2345]
stop on runlevel [06]

env PATH=/usr/local/node-v0.10.15-linux-x64/bin/:$PATH
#env NODE_ENV=production

chdir /home/nodejs/site

exec node app.js >/home/nodejs/site/log/console.log 2>&1

几点说明:

配置完毕,系统启动时,应用服务也将自动启动。

手动启动:

start node

手动停止:

stop node

查看状态:

status node

有关Upstart的更多信息可参考Upstart Intro, Cookbook and Best Practises