Node.js su server Apache (Shared Hosting)

0


Vorrei eseguire Node.js / Express come server di backend principalmente per gestire le funzionalità di WebRTC nella mia app.
Stavo solo discutendo di questo con il mio provider di hosting e hanno respinto questa richiesta dicendo che Node .js è pesante e richiede Java rendendo impossibile l'esecuzione su Apache, quindi devo aggiornare il mio account a VPS.

Google mi dice il contrario e molte persone stanno eseguendo Node.js su Apache.

È vero quanto sopra o stanno cercando di approfittarsi di me?

    
posta Awena 22.09.2014 - 06:17
fonte

1 risposta

1

In realtà puoi eseguire node.js su un tipico hosting condiviso con Linux, Apache e PHP. Anche NPM, Express e Grunt funzionano bene. Ecco i passaggi necessari:

1) Crea un nuovo file PHP sul server con i seguenti contenuti 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) Installa l'app del tuo nodo, ad es. jt-js-sample, usando npm:

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

3) Avvia 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=81 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:81/');
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! Dai un'occhiata alla demo di un'app di nodo su hosting condiviso PHP .

EDIT: questo è il mio nuovo progetto Node.php su GitHub .

    
risposta data 10.12.2014 - 01:53
fonte

Leggi altre domande sui tag