#以CentOS 5.6为例 ip:192.168.32.220 user:root
#所需文件:
node-v0.10.24.tar.gz #node环境源代码
node-ahctf.zip #node工程代码压缩包
npmbox.npmbox #npmbox的自动安装包 该包生成工具参考url:https://github.com/arei/npmbox
forever.npmbox #forever的离线安装包
ahctf #forever开机自启动的服务脚本(下文已给出)
#《NodeJS 环境配置》
#升级CentOS 5.6的python由2.4.3至2.7.3 (解决node编译脚本的问题)
参考 http://viowan.blog.163.com/blog/static/137629793201321742518560/
#下载源码,你需要在http://nodejs.org/下载最新的Nodejs版本,本文以v0.10.24为例(版本大于等于v0.10即可):
$ssh root@192.168.32.220
cd /usr/local/src/
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz # 或者用命令scp本地上传到远程主机
#解压源码
tar zxvf node-v0.10.24.tar.gz
#编译安装
cd node-v0.10.24
./configure --prefix=/usr/local/node/0.10.24
make
make install
#配置NODE_HOME,进入profile编辑环境变量
vim /etc/profile
#设置nodejs环境变量,在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容,wq保存并退出:
#set for nodejs
export NODE_HOME=/usr/local/node/0.10.24
export PATH=$NODE_HOME/bin:$PATH
#编译/etc/profile 使配置生效
source /etc/profile
#验证是否安装配置成功,输出 v0.10.24 表示配置成功
node -v
#node安装完成后,npm模块安装路径为
/usr/local/node/0.10.24/lib/node_modules/
#《部署node工程代码》
#上传 node-ahctf 压缩包(李蒙已经传给你了)到 /web/ 目录下,解压在当前路径下,重命名为 node-ahctf-1.0.0 ,以192.168.32.220为例
mkdir /web/
$scp node-ahctf.zip root@192.168.32.220:/web/node-ahctf.zip
#解压到 /web/node-ahctf-1.0.0 目录下
cd /web/
unzip node-ahctf.zip -d node-ahctf-1.0.0
#查看查看工程代码完整性,指向下列指令后,访问该ip的3000端口,如 192.168.32.220:3000,若空白页面显示 "Cannot GET /",则代码可运行
cd node-ahctf-1.0.0
node index.js
#《设置node工程的开机自启动服务》
#离线配置npm包 forever
#上传npmbox工具包
$scp npmbox.npmbox root@192.168.32.220:/home/npmbox.npmbox
cd /home
tar -zxvf npmbox.npmbox
npm install --global --cache ./.npmbox.cache --optional --cache-min 99999 npmbox
$scp forever.npmbox root@192.168.32.220:/home/forever.npmbox
npmunbox -v -g forever.npmbox
#添加node工程的开机启动服务,添加 /web/node-ahctf-1.0.0/deployment/ahctf 脚本到文档 /etc/init.d/ 内
cp /web/node-ahctf-1.0.0/deployment/ahctf /etc/init.d/
#打开脚本文件 ahctf,并修改其中的 NODE 值为 "which node" 命令的输出值 (应该为 /usr/local/node/0.10.24/bin/node ) 并添加 forever的路径到 。。。
cd /etc/init.d/
which node #将输出值设置为ahctf中 NODE 的值
which forever #将输出值添加到ahctf中 PATH 的最后,注意加 : 号
vi ahctf
chmod +x ahctf
chkconfig --add ahctf
chkconfig --list
service ahctf start
#----now reboot to test----
#all over#
##《ahctf》的脚本内容
#!/bin/bash
#chkconfig:345 99 01
#description:ahctf
DIR='/web/node-ahctf-1.0.0'
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NODE_PATH='/web/node-ahctf-1.0.0/node_modules'
NODE=/usr/local/bin/node
test -x $NODE || exit 0
function start_app {
forever start -l "$DIR/logs/ahctf.log" -o "$DIR/logs/ahctf.out.log" -e "$DIR/logs/ahctf.err.log" -a "$DIR/index.js"
}
function stop_app {
forever stop "$DIR/index.js"
}
case $1 in
start)
start_app ;;
stop)
stop_app ;;
restart)
stop_app
start_app
;;
*)
echo "usage: clearstonecc {start|stop}" ;;
esac
exit 0