web-dev-qa-db-fra.com

Comment héberger une application Node.Js dans un hébergement partagé

Comment héberger une application Node.Js dans un hébergement partagé

Je souhaite héberger une application node.js en hébergement partagé. Quelqu'un a-t-il une référence ou une documentation à laquelle se référer?

101
somesh

Vous pouvez exécuter le serveur node.js sur un hébergement partagé typique avec Linux, Apache et PHP (LAMP). Je l’ai installée avec succès, même si NPM, Express et Grunt fonctionnent correctement. Suis les étapes:

1) Créez un nouveau fichier PHP sur le serveur avec le code suivant et exécutez-le:

<?php
//Download and extract the latest node
exec('curl http://nodejs.org/dist/latest/node-v0.10.33-linux-x86.tar.gz | tar xz');
//Rename the folder for simplicity
exec('mv node-v0.10.33-linux-x86 node');

2) De la même manière, installez votre application de nœud, par exemple jt-js-sample, en utilisant npm:

<?php
exec('node/bin/npm install jt-js-sample');

3) Exécutez l'application de nœud à partir de PHP:

<?php
//Choose JS file to run
$file = 'node_modules/jt-js-sample/index.js';
//Spawn node server in the background and return its pid
$pid = exec('PORT=49999 node/bin/node ' . $file . ' >/dev/null 2>&1 & echo $!');
//Wait for node to start up
usleep(500000);
//Connect to node server using cURL
$curl = curl_init('http://127.0.0.1:49999/');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//Get the full response
$resp = curl_exec($curl);
if($resp === false) {
    //If couldn't connect, try increasing usleep
    echo 'Error: ' . curl_error($curl);
} else {
    //Split response headers and body
    list($head, $body) = explode("\r\n\r\n", $resp, 2);
    $headarr = explode("\n", $head);
    //Print headers
    foreach($headarr as $headval) {
        header($headval);
    }
    //Print body
    echo $body;
}
//Close connection
curl_close($curl);
//Close node server
exec('kill ' . $pid);

Voila! Jetez un coup d'œil à la démonstration d'une application de noeud sur PHP hébergement partagé .

EDIT: J'ai démarré un projet Node.php sur GitHub .

145
niutech

Connectez-vous avec SSH et suivez ces instructions pour installer Node sur un hébergement partagé

En bref, vous installez d'abord NVM, puis vous installez la version Node de votre choix avec NVM.

wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash

Votre redémarrage de votre shell (fermez et rouvrez vos sessions). Alors vous

nvm install stable

pour installer la dernière version stable par exemple. Vous pouvez installer n'importe quelle version de votre choix. Vérifiez node --version pour connaître la version du nœud que vous utilisez actuellement et nvm list pour voir ce que vous avez installé.

En bonus, vous pouvez changer de version très facilement (nvm use <version>)

Il n'est pas nécessaire d'utiliser PHP ni aucune solution de contournement complexe si vous avez SSH.

45
vinyll

J'ai installé Node.js sur bluehost.com (un serveur partagé) en utilisant:

wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node

Cela téléchargera le fichier tar, l'extraire dans un répertoire, puis le renommera sous le nom de "nœud" afin de faciliter son utilisation.

ensuite

./node/bin/npm install jt-js-sample

Returns:
npm WARN engine [email protected]: wanted: {"node":"0.10.x"} (current: {"node":"0.12.4","npm":"2.10.1"})
[email protected] node_modules/jt-js-sample
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

Je peux maintenant utiliser les commandes:

# ~/node/bin/node -v
v0.12.4

# ~/node/bin/npm -v
2.10.1

Pour des raisons de sécurité, j'ai renommé mon répertoire de noeuds.

11
iiboone.com

A2 Hosting autorise node.js sur ses comptes d'hébergement partagé. Je peux témoigner que j'ai eu une expérience positive avec eux.

Voici des instructions dans leur base de connaissances pour l'installation de node.js avec Apache/LiteSpeed ​​en tant que proxy inverse: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js- on-managed-hosting-accounts . La configuration prend environ 30 minutes et fonctionne avec npm, Express, MySQL, etc.

Voir a2hosting.com.

6
aap

Vous devriez chercher une société d’hébergement qui offre une telle fonctionnalité, mais l’hébergement standard simple statique + PHP + MySQL ne vous laissera pas utiliser node.js.

Vous devez soit trouver un hébergement conçu pour node.js, soit acheter un Virtual Private Server et l'installer vous-même.

1
Marek