Installer nodeJS dans un contexte mutualisé avec CGI-Node

Actuellement, nodeJS n'est pas proposé officiellement sur nos espaces d'hébergements, cependant vous pouvez l'utiliser en passant par cgi-node. CGI-Node permet d'utiliser nodeJS en bénéficiant sur support CGI de nos hébergements.

A l'avenir cette astuce ne sera plus nécessaire mais en attendant que nous proposions officiellement nodeJS sur nos hébergements vous pouvez l'utiliser.

Nous vous recommandons d'utiliser cette astuce pour faire des sites de tests, de développement ou des sites personnels. Pour des sites en production, nous vous recommandons de patienter l'ajout officiel de nodeJS sur les hébergements o2switch : les performances seront accrues.

Pour commencer, il est recommandé de demander le déblocage de votre accès SSH au support. Cela sera utile pour l'installation de cgi-node. Vous pouvez faire cela en suivant cette procédure. C'est possible de l'installer sans SSH mais cela est moins évident.

Téléchargement des ressources

Dans un premier temps, il faut télécharger l'ensemble des ressources nécessaires au fonctionnement de cgi-node. Deux choses doivent être télécharger : le binaire de nodeJS et cgi-node qui permet de le faire fonctionner en mode CGI.

Installation de nodeJS

NodeJS peut être récupéré depuis ce lien. Il faut choisir la dernière version, 64 bits, situé dans le dossier release/latest.

Par exemple, à cet instant le fichier se nomme node-v6.2.0-linux-x64.tar.gz. Il ne faut pas se tromper de version, il existe d'autres versions avec des noms similaires mais il faut impérativement choisir la version linux 64 bits.

Choix du binaire nodeJS sur la page de téléchargement du site officiel

Choix du binaire nodeJS sur la page de téléchargement du site officiel

Ensuite il faut extraire ce fichier sur votre ordinateur (à l'aide de 7Zip par exemple) puis envoyer le dossier extrait dans le répertoire bin de votre hébergement. Vous pouvez renommer le dossier en “nodejs” en enlevant le numéro de version, cela sera plus pratique pour la suite.

Si vous travaillez en SSH, vous pouvez faire cela directement depuis votre shell :

Installation de nodeJS
wget https://nodejs.org/download/release/latest/node-v6.2.0-linux-x64.tar.gz
tar -xvf node-*.tar.gz
mkdir ~bin
mv node-v6.2.0-linux-x64 ~/bin/nodejs
~/bin/nodejs/bin/node --version

Installation de CGI-Node

La dernière version de CGI-Node peut être téléchargé depuis ce lien.

Il faut télécharger la version optimisé qui sert à la production.

Choix de la version de CGI-Node à télécharger

Choix de la version de CGI-Node à télécharger

Ensuite, il faut placer ce fichier dans le répertoire cgi-bin du répertoire dans lequel vous souhaitez installer votre projet nodeJS. Dans cet exemple, il s'agit du répertoire public_html/cgi-bin.

Nous vous recommandons de renommer le fichier cgi-node.min.js en cgi-node.js et de lui attribuer les droits d'exécution (chmod 755).

Ensuite, il faut éditer ce fichier à deux endroits :

  • il faut changer le chemin vers l'exécutable nodeJS visible dans la première ligne. Dans notre exemple il s'agit de /home/demo/bin/nodejs/bin/node. Vous pouvez trouver la première partie de ce chemin dans l'outil gestionnaire de fichier de cPanel ou si vous travaillez en SSH avec la comande pwd.
  • il faut changer le chemin vers le répertoire de stockage des sessions visibles à la fin de la seconde ligne. Vous pouvez créer un dossier dédié à cela sur votre hébergement ou bien mettre le dossier tmp situé à la racine de votre hébergement. Dans notre exemple /home/demo/tmp.

Les deux endroits ou doivent les modifications doivent être apportées

Les deux endroits ou doivent être appliquées les modifications

Si vous travaillez en SSH :

Installation de cgi-node
wget -O cgi-node.js https://github.com/UeiRicho/cgi-node/releases/download/v0.2/cgi-node.min.js
chmod 755 cgi-node.js
pwd
vi cgi-node.js 
# modification des chemins vers les exécutables dans le fichier

Activation de cgi-node

Pour activer cgi-node, il faut ajouter (ou éditer s'il existe déjà) le fichier .htaccess qui se situe dans le répertoire dans lequel vont aller les fichiers de votre projet. Dans notre exemple, il s'agit de public_html/.htaccess.

Le fichier .htaccess devra contenir les intructions suivantes :

Ajout de l'exécution des fichiers jscript par nodejs
Action cgi-node /cgi-bin/cgi-node.js 
AddHandler cgi-node .jscript
# vous pouvez ajouter d'autres extensions qui devront être interprétés par node dans le AddHandler

Pour tester si cela fonctionne, il suffit de créer un fichier info.jscript qui contient les instructions suivantes puis de l'ouvrir avec un navigateur :

Equivalent du phpinfo nodeJS
<? CgiNodeInfo() ?>

Voici le résultat :

Affichage de la page d'info nodeJS équivalente au phpinfo

Affichage de la page d'info nodeJS équivalente au phpinfo