Comment héberger une application Node.Js dans un hébergement mutualisé
Je souhaite héberger une application node.js en hébergement mutualisé. Quelqu'un a-t-il des références ou des documents auxquels se référer?
Comment héberger une application Node.Js dans un hébergement mutualisé
Je souhaite héberger une application node.js en hébergement mutualisé. Quelqu'un a-t-il des références ou des documents auxquels se référer?
Réponses:
Vous pouvez exécuter le serveur node.js sur un hébergement partagé typique avec Linux, Apache et PHP (LAMP). Je l'ai installé avec succès, même avec NPM, Express et Grunt fonctionnant bien. 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 depuis 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 œil à la démo d'une application de nœud sur l'hébergement mutualisé PHP .
EDIT: J'ai commencé un projet Node.php sur GitHub .
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
Vous redémarrez 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. Recherchez node --version
la version du nœud que vous utilisez actuellement et nvm list
voyez ce que vous avez installé.
En bonus, vous pouvez changer de version très facilement ( nvm use <version>
)
Il n'y a pas besoin de PHP ou de toute solution de contournement délicate si vous avez SSH.
nvm:command not found
vous pouvez exécuter ceci: commandesource ~/.nvm/nvm.sh
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, extraira dans un répertoire, puis renommera ce répertoire sous le nom «nœud» pour le rendre plus facile à utiliser.
puis
./node/bin/npm install jt-js-sample
Returns:
npm WARN engine jt-js-sample@0.2.4: wanted: {"node":"0.10.x"} (current: {"node":"0.12.4","npm":"2.10.1"})
jt-js-sample@0.2.4 node_modules/jt-js-sample
└── express@4.12.4 (merge-descriptors@1.0.0, utils-merge@1.0.0, cookie-signature@1.0.6, methods@1.1.1, cookie@0.1.2, fresh@0.2.4, escape-html@1.0.1, range-parser@1.0.2, finalhandler@0.3.6, content-type@1.0.1, vary@1.0.0, parseurl@1.3.0, serve-static@1.9.3, content-disposition@0.5.0, path-to-regexp@0.1.3, depd@1.0.1, qs@2.4.2, on-finished@2.2.1, debug@2.2.0, etag@1.6.0, proxy-addr@1.0.8, send@0.12.3, type-is@1.6.2, accepts@1.2.7)
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 nœuds en autre chose.
npm start
dans le jt-js-sample
et je suis allé sur mysite.com:5000 mais il a dit que la page n'était pas disponible. Dois-je plutôt accéder à l'adresse IP?
A2 Hosting autorise node.js sur leurs comptes d'hébergement partagé. Je peux garantir que j'ai eu une expérience positive avec eux.
Voici les instructions dans leur base de connaissances pour installer node.js en utilisant Apache / LiteSpeed comme proxy inverse: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- comptes d'hébergement . La configuration de la configuration prend environ 30 minutes et fonctionnera avec npm, Express, MySQL, etc.
Voir a2hosting.com.
Vous devriez rechercher une société d'hébergement qui offre une telle fonctionnalité, mais l'hébergement standard simple statique + PHP + MySQL ne vous permettra pas d'utiliser node.js.
Vous devez soit trouver un hébergement conçu pour node.js, soit acheter un serveur privé virtuel et l'installer vous-même.