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-phpcgiThen, 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.gitBefore 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 mochaAfter that, you can do this:
# cd the repo directory
npm install
mochaThis package is inspired from gateway.