本文是编译源码安装。
从v0.9.1版本开始,node提供编译好的的安装包 ,可以直接下载后使用 ,不用源码编译的方式安装,本文可用于采用源码安装的参考。
具体地址可访问http://nodejs.org/dist/
1.确保安装了GUN make
[root@localhost node-v0.9.0]# rpm -qa|grep make
makebootfat-1.4-10.el6.x86_64
#显示没有安装。
安装后:
[root@localhost node-v0.9.0]# yum -y install make
......
......
[root@localhost node-v0.9.0]# rpm -qa|grep make
makebootfat-1.4-10.el6.x86_64
make-3.81-19.el6.x86_64
2.确保安装了gcc,gcc-c++,ncurses-devel,openssl-devel
1)gcc安装:
安装前:
[root@localhost ~]# gcc -v
-bash: gcc: command not found
[root@localhost node-v0.9.0]# rpm -qa|grep gcc
libgcc-4.4.6-3.el6.x86_64
安装后:
[root@localhost node-v0.9.0]# yum -y install gcc
......
......
[root@localhost node-v0.9.0]# rpm -qa|grep gcc
libgcc-4.4.6-3.el6.x86_64
gcc-4.4.6-3.el6.x86_64
[root@localhost node-v0.9.0]# gcc -v
使用内建 specs。
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
2)gcc-c++安装:
安装前:
[root@localhost node-v0.9.0]# rpm -qa|grep gcc-c++
安装后:
[root@localhost node-v0.9.0]# yum -y install gcc-c++
......
......
[root@localhost node-v0.9.0]# rpm -qa|grep gcc-c++
gcc-c++-4.4.6-3.el6.x86_64
3)安装openssl-devel
openssl-devel:
用于ssl(这个就是在网络层的一个加密连接)的一些操作,比如ssl的证书验证之类的
安装前:
[root@localhost node-v0.9.0]# rpm -qa|grep openssl-devel
安装后:
[root@localhost node-v0.9.0]# yum -y install openssl-devel
......
......
[root@localhost node-v0.9.0]# rpm -qa|grep openssl-devel
openssl-devel-1.0.0-20.el6_2.5.x86_64
4)确保安装了python,版本在2.5以上,不支持python3
[root@localhost node-v0.9.0]# python
Python 2.6.6 (r266:84292, Dec 7 2011, 20:48:22)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
3.安装node
1).下载nodejs到本地并解压缩
[root@localhost node]# wget http://nodejs.org/dist/v0.9.0/node-v0.9.0.tar.gz
[root@localhost node]# tar zxvf node-v0.9.0.tar.gz
2).进入到该目录编译和安装
[root@localhost node-v0.9.0]# cd node-v0.9.0
[root@localhost node-v0.9.0]# ./configure --prefix=/usr/local/node/0.9.0
这里安装在了/usr/local/node/0.9.0目录下
[root@localhost node-v0.9.0]# make
[root@localhost node-v0.9.0]# make install
3).配置NODE_HOME
[root@localhost node-v0.9.0]# vi /etc/profile
在export PATH USER 。。。一行的上面添加如下内容,并将NODE_HOME/bin设置到系统path中
#set for nodejs
export NODE_HOME=/usr/local/node/0.9.0
export PATH=$NODE_HOME/bin:$PATH
保存退出后执行如下命令,使刚才的配置生效
[root@localhost node-v0.9.0]# source /etc/profile
执行node -help命令验证设置成功
[root@localhost node-v0.9.0]# node -help
Usage:
shell [options] -e string
execute string in V8
......
......
至此安装设置完毕。
4.运行一个简单的node应用程序
[lify@localhost studyfile]$ vi app.js
输入如下内容
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello, World!\n');
}).listen(8080, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8080');
执行如下命令
[lify@localhost studyfile]$ node app.js
Server running at http://127.0.0.1:8080
在浏览器中输入http://127.0.0.1:8080/,会有下面的输出:
Hello, World!
5.Node服务在后台运行
有多重方式可以实现该功能,这里以forever为例进行介绍
1)安装forever
[root@localhost bin]# npm install -g forever
2)创建启动脚本
[root@localhost bin]# vi /etc/init.d/node
编辑node文件,下面以开机自动启动上面演示的app.js为例,输入如下内容
#! /bin/sh -e
set -e
PATH=/usr/local/node/0.9.0/bin:/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/home/lify/program/node/studyfile/app.js
case "$1" in
start) forever start $DAEMON ;;
stop) forever stop $DAEMON ;;
force-reload|restart)
forever restart $DAEMON ;;
*) echo "Usage: /etc/init.d/node {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
3)增加对该文件的执行权限
[root@localhost bin]# chmod u+x /etc/init.d/node
4)启动服务
[root@localhost bin]# service node start
info: Forever processing file: /home/lify/program/node/studyfile/app.js
用forever查看运行状态
[root@localhost bin]# forever list
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] gOgC /usr/local/node/0.9.0/bin/node /home/lify/program/node/studyfile/app.js 21035 21037 /root/.forever/gOgC.log 0:0:0:18.71
通过进程查看node运行状态
[root@localhost bin]# ps ax | grep node
21035 ? Ssl 0:00 /usr/local/node/0.9.0/bin/node /usr/local/node/0.9.0/lib/node_modules/forever/bin/monitor /home/lify/program/node/studyfile/app.js
21037 ? Sl 0:00 /usr/local/node/0.9.0/bin/node /home/lify/program/node/studyfile/app.js
21053 pts/0 S+ 0:00 grep node
停止node服务
[root@localhost bin]# service node stop
用forever查看运行状态
[root@localhost bin]# forever list
info: No forever processes running
通过进程查看node运行状态
[root@localhost bin]# ps ax | grep node
21072 pts/0 S+ 0:00 grep node
node的安装介绍完毕