Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Ever wanted to deploy a node.js web app but didn't have money for a dedicated node.js hosting or didn't have time to set up a cloud PaaS? Have an existing PHP shared hosting based on the LAMP stack? Now you can run node.js on top of it!

Node.php originates from my ealier answer on Stack Overflow.

The node.php script installs an official node.js package, starts a hidden server on localhost:49999 with provided JS file and proxies all requests to it.

Warning! This is an alpha version, it may be insecure, run it at your own risk!


A PHP web hosting based on Linux with safe mode off and the following functions enabled: curl_exec, exec, passthru.

How to run

  1. Put the node.php file in your public_html (or similar) folder, then install node.js by browsing to:
  2. When succeeded, install your node.js app by uploading its folder or using npm: jt-js-sample.
  3. When everything goes fine, start your node.js instance by going to:
  4. Now you can request your app by browsing to: This will return a response from the running node.js app at
  5. Finally, stop your node.js server by loading:


node.php[?path=some/path] - serves an already running node.js app with an optional request path (no leading slash)

The following commands require the ADMIN_MODE set to true (line 13 of node.php):

node.php?install - downloads and extracts node.js into the node folder.

node.php?uninstall - removes the node folder

node.php?start=node_modules/jt-js-sample/index.js - starts a node.js server running the provided index.js file

node.php?stop - stops a running node.js server

node.php?npm=install jt-js-sample - runs npm install jt-js-sample (may be dangerous!)


Here is a live demo on a dirt cheap PHP shared hosting.


In order to troubleshoot any problems with running node.php, connect to your host using SSH and run exact node.php commands manually:

  1. Go to your document root directory (often ~/public_html/) and check if node directory exists there.

  2. If yes, go to step 3, otherwise download node for your architecture:

    tar -xzf node-v5.7.0-linux-x86.tar.gz
    mv node-v5.7.0-linux-x86/ node/
    rm -f node-v5.7.0-linux-x86.tar.gz
  3. Run node on port 49999 (or other): PORT=49999 node/bin/node [path/to/index.js] &

  4. Connect to node instance: curl[some/path]

  5. If you get the HTML response, the problem most probably lies in PHP and its permissions.

  6. Kill node process: killall node


Node.js is developed by Joyent et al. under the MIT License.

Node.php is developed by Jerzy Głowacki under the MIT License.


Run node.js apps from PHP even on a shared hosting!






No releases published


No packages published