Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/niutech/node.php
Run node.js apps from PHP even on a shared hosting!
https://github.com/niutech/node.php
Last synced: 6 days ago
JSON representation
Run node.js apps from PHP even on a shared hosting!
- Host: GitHub
- URL: https://github.com/niutech/node.php
- Owner: niutech
- Created: 2014-12-31T00:41:43.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-11-16T09:01:29.000Z (almost 6 years ago)
- Last Synced: 2024-11-02T13:33:44.499Z (11 days ago)
- Language: PHP
- Homepage:
- Size: 8.79 KB
- Stars: 819
- Watchers: 58
- Forks: 235
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Node.php
========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](http://stackoverflow.com/questions/24777750/how-to-host-a-node-js-application-in-shared-hosting/27391738#27391738).
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!
Requirements
------------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: `http://example.org/node.php?install`.
2. When succeeded, install your node.js app by uploading its folder or using npm: `http://example.org/node.php?npm=install jt-js-sample`.
3. When everything goes fine, start your node.js instance by going to: `http://example.org/node.php?start=node_modules/jt-js-sample/index.js`.
4. Now you can request your app by browsing to: `http://example.org/node.php?path=optional/request/path`. This will return a response from the running node.js app at `http://127.0.0.1:49999/optional/request/path`.
5. Finally, stop your node.js server by loading: `http://example.org/node.php?stop`.Commands
--------`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!*)
Demo
----[Here is a live demo](http://juvenia.info/node_modules/jt-js-sample/) on a dirt cheap PHP shared hosting.
Troubleshooting
---------------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:
```
wget http://nodejs.org/dist/node-v5.7.0-linux-x86.tar.gz
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 http://127.0.0.1:49999/[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`License
-------Node.js is developed by Joyent et al. under the MIT License.
Node.php is developed by Jerzy Głowacki under the MIT License.