You can run node.js server on a typical shared hosting with Linux, Apache and PHP (LAMP). I have successfully installed it, even with NPM, Express and Grunt working fine.
Follow the steps:
1) Create a new PHP file on the server with the following code and run it:
<?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) The same way install your node app, e.g. jt-js-sample, using npm:
<?php exec('node/bin/npm install jt-js-sample');
3) Run the node app from 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);
Hope it helps!!
Thank You!!
Nice blog! I really loved reading through this Blog... Thanks for sharing.......
ReplyDeleteInwizards Technology
flutter app development
flutter app development company