A simple middleware for node to execute php with php-cgi.
Before using this, make sure you have already installed the php-cgi
Note:Not the php command.
First, install it in your project directory:
npm install node-phpcgi
Then, use it in your node server like this:
var middleware = require('node-phpcgi')({
documentRoot: __dirname,
// change it to your own handler path
handler: '/usr/local/php/bin/php-cgi'
});
var app = http.createServer(function(req, res) {
middleware(req, res, function(err) {});
});
If you are using connect, you can use it like this:
var connect = require('connect');
var phpcgi = require('node-phpcgi')({
documentRoot: __dirname,
// change it to your own path
handler: '/usr/local/php/bin/php-cgi'
});
var app = connect();
app.use(phpcgi);
If you are using koa2
, you can use it like this:
const Koa = require('koa');
const app = new Koa();
const phpcgi = require('node-phpcgi/koa');
app.use(phpcgi({documentRoot: __dirname}));
Specially for edp, you can use it like this:
{
location: /\.php($|\?)/,
handler: [
require('node-phpcgi/edp')()
]
}
If you want to specify the arguments for php, just add them:
var middleware = phpcgi({
documentRoot: __dirname,
// change it to your own path
handler: '/usr/local/php/bin/php-cgi'
// you can add any available php-cgi args here.
args: ['-c', '/usr/local/php/lib/php.ini']
});
Clone into somewhere:
git clone https://github.com/hushicai/node-phpcgi.git
Before you can run the tests, you should change the handler path in the test/spec.js
file:
var middleware = phpcgi({
documentRoot: __dirname + '/htdocs',
// change it to your own path
handler: '/usr/local/php/bin/php-cgi'
});
If you does not install the global mocha
, install it:
npm install -g mocha
After that, you can do this:
# cd the repo directory
npm install
mocha
This package is inspired from gateway.