Installation de Juggernaut sur Debian 6.0

De wikiGite

Présentation

https://github.com/maccman/juggernaut/

Juggernaut permet de raliser des connexions en temps réel entre un serveur et un navigateur web. Il permet le push d'informations dans des applications web, cela permet de realiser des choses comme des jeux multijoueurs, des chats ou des outils collaboratifs. Juggernaut est realisé à l'aide de Node.js.

ATTENTION juggernaut est déprecié : http://blog.alexmaccaw.com/killing-a-library

Préparation du serveur

Installation des outils nécessaires à l'installation de Juggernaut :

aptitude install build-essential php5-dev curl git

Installation de Nodejs

Installation des pré-requis :

aptitude install libssl-dev

Installation depuis les sources :
L'installation se fait /usr/local :

wget http://nodejs.org/dist/latest/node-v0.8.6.tar.gz
tar xzf node-v0.8.6.tar.gz && cd node-v0.8.6/
./configure --openssl-libpath=/usr/lib/ssl
make
make install

Installation de Redis

Ajouter le depot backport dans /etc/apt/source.list :

deb http://backports.debian.org/debian-backports squeeze-backports main 
aptitude update 
aptitude -t squeeze-backports install redis-server

Démarrage du service redis server :

/etc/init.d/redis-server start

Installation de Node_redis

npm install -g redis

Installation de Phpredis

git clone https://github.com/nicolasff/phpredis.git
cd phpredis
phpize
./configure
make
make install

Activation de l'extension PHP : Créer un fichier redis.ini dans /etc/php5/conf.d avec le contenu suivant :

extension=redis.so

Installation de Juggernaut

npm install -g juggernaut
vim /etc/init.d/juggernaut

Copier le contenu suivant :

 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides: juggernaut2
 # Required-Start: $syslog $remote_fs
 # Required-Stop: $syslog $remote_fs
 # Should-Start: $local_fs
 # Should-Stop: $local_fs
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Short-Description: juggernaut2
 # Description: juggernaut2
 ### END INIT INFO
 
 
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 DAEMON=/usr/local/bin/juggernaut
 NAME=juggernaut2
 DESC=juggernaut2
 PIDFILE=/var/run/juggernaut.pid
 
 test -x $DAEMON || exit 0
 
 set -e
 
 case "$1" in
   start)
       	echo -n "Starting $DESC: "	
 	touch $PIDFILE
 	chown juggernaut:juggernaut $PIDFILE
 	if start-stop-daemon --start --quiet --background --umask 007 --make-pidfile --pidfile $PIDFILE --chuid juggernaut:juggernaut --exec $DAEMON 
 	then
 		echo "$NAME."
 	else
 		echo "failed"
 	fi
 	;;
   stop)
 	echo -n "Stopping $DESC: "
 	if start-stop-daemon --stop --retry 10 --quiet --oknodo --pidfile $PIDFILE
 	then
 		echo "$NAME."
 	else
 		echo "failed"
 	fi
 	rm -f $PIDFILE
 	;;
 
   restart|force-reload)
 	${0} stop
 	${0} start
 	;;
 
   status)
 	echo -n "$DESC is "
 	if start-stop-daemon --stop --quiet --signal 0 --name ${NAME} --pidfile ${PIDFILE}
 	then
 		echo "running"
 	else
 		echo "not running"
 	exit 1
 	fi
 	;;
 
   *)
 	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
 	exit 1
 	;;
 esac
 
 exit 0
adduser --system --no-create-home --disabled-login --disabled-password --group juggernaut
chmod +x /etc/init.d/juggernaut
update-rc.d -f juggernaut defaults

Tester le fonctionnement de Juggernaut :
http://localhost:8080