Come ospitare un'applicazione Node.Js in un hosting condiviso
Voglio ospitare un'applicazione node.js in un hosting condiviso. Qualcuno ha riferimenti o documentazione a cui fare riferimento?
Come ospitare un'applicazione Node.Js in un hosting condiviso
Voglio ospitare un'applicazione node.js in un hosting condiviso. Qualcuno ha riferimenti o documentazione a cui fare riferimento?
Risposte:
È possibile eseguire server di 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 la tua app del nodo, ad esempio jt-js-sample, usando npm:
<?php
exec('node/bin/npm install jt-js-sample');
3) Esegui l'app del 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 alla demo di un'app node su hosting condiviso PHP .
EDIT: ho avviato un progetto Node.php su GitHub .
Connettiti con SSH e segui questi istruzioni per installare Node su un hosting condiviso
In breve, prima installi NVM, poi installi la versione Node di tua scelta con NVM.
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
Riavvia la 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. Dai un'occhiatanode --version
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 soluzione alternativa complicata se si dispone di SSH.
nvm:command not found
puoi eseguire questo: comandosource ~/.nvm/nvm.sh
Ho installato Node.js su bluehost.com (un server condiviso) utilizzando:
wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node
Questo scaricherà il file tar, lo estrarrà in una directory e quindi rinominerà quella directory con il nome "nodo" per renderlo più facile da usare.
poi
./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)
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 mia directory del nodo in qualcos'altro.
npm start
in jt-js-sample
e sono andato su miosito.com:5000 ma diceva che la pagina non era disponibile. Devo invece andare all'indirizzo IP?
A2 Hosting consente node.js sui propri account di hosting condiviso. Posso garantire di aver avuto un'esperienza positiva con loro.
Ecco le istruzioni nella loro KnowledgeBase per l'installazione di node.js utilizzando Apache / LiteSpeed come proxy inverso: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- account di hosting . Occorrono circa 30 minuti per impostare la configurazione e funzionerà con npm, Express, MySQL, ecc.
Vedi a2hosting.com.
Dovresti cercare una società di hosting che fornisca tale funzionalità, ma l'hosting standard semplice statico + PHP + MySQL non ti consente di utilizzare node.js.
Devi trovare un hosting progettato per node.js o acquistare un server privato virtuale e installarlo tu stesso.