it-swarm.it

Come ospitare un'applicazione Node.Js nell'hosting condiviso

Come ospitare un'applicazione Node.Js in un hosting condiviso

Voglio ospitare un'applicazione node.js nell'hosting condiviso. Qualcuno ha qualche riferimento o documentazione a cui fare riferimento?

99
somesh

È possibile eseguire il server node.js su un tipico hosting condiviso con Linux, Apache e PHP (LAMP). L'ho installato con successo, anche con NPM, Express e Grunt che funzionano bene. Segui i passi:

1) Crea un nuovo file PHP sul server con il seguente codice ed eseguilo:

<?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) Allo stesso modo installa l'app del nodo, ad es. jt-js-sample, usando npm:

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

3) Esegui l'app nodo da 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);

Ecco! Dai un'occhiata a demo di un'app nodo su PHP hosting condiviso .

EDIT: Ho avviato un progetto Node.php su GitHub .

144
niutech

Connettiti con SSH e segui queste istruzioni per installare Node su un hosting condiviso

In breve, prima installa NVM, quindi installa la versione Node di tua scelta con NVM.

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

Riavvia Shell (chiudi e riapri le sessioni). Allora lei

nvm install stable

per installare l'ultima versione stabile, ad esempio. Puoi installare qualsiasi versione di tua scelta. Controlla node --version per la versione del nodo che stai attualmente utilizzando e nvm list per vedere cosa hai installato.

In bonus puoi cambiare versione molto facilmente (nvm use <version>)

Non è necessario PHP o qualsiasi altra soluzione complicata se si dispone di SSH.

45
vinyll

Ho installato Node.js su bluehost.com (un server condiviso) usando:

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

In questo modo il file tar verrà scaricato, estratto in una directory e quindi rinominato quella directory nel nome "nodo" per facilitarne l'utilizzo.

poi

./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])

Ora posso usare i comandi:

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

# ~/node/bin/npm -v
2.10.1

Per motivi di sicurezza, ho rinominato la directory del mio nodo in qualcos'altro.

11
iiboone.com

L'hosting A2 consente a node.js sui loro account di hosting condiviso. Posso garantire di aver avuto un'esperienza positiva con loro.

Ecco le istruzioni nella loro Knowledge Base per l'installazione di node.js usando Apache/LiteSpeed ​​come proxy inverso: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js- on-managed-hosting-account . Sono necessari circa 30 minuti per impostare la configurazione e funzionerà con npm, Express, MySQL, ecc.

Vedi a2hosting.com.

6
aap

Dovresti cercare una società di hosting che fornisca tale funzionalità, ma l'hosting statico + PHP + MySQL semplice standard non ti consente di utilizzare node.js.

È necessario trovare un hosting progettato per node.js o acquistare un Virtual Private Server e installarlo da soli.

1
Marek