0.8.1 • Public • Published


Simple php connect-like middleware using the php built-in server

⚠️ This is experimental and only tested on OSX ⚠️


Usage with express
const express = require('express')
const phpMiddleware = require('php-server-middleware')
const app = express()
app.use('/', phpMiddleware())

API Usage

const middleware = phpMiddleware([options])

Return a connect-like middleware function and auto-start the php server used by the middleware.


host (String)
  • Default: ''
  • The host the php server will listen on
  • There is an issue between node-proxy and the built-in php server when php serves from localhost. To fix this, localhost' will be proxy as[::1]`. Note that it can break host/port rewriting in headers/body response.
port (Number)
  • Default: '35410'
  • The base port to use for the php server
root (String)
  • Default: process.cwd()
  • The document root of the php server
headersRewrite (Boolean)
  • Default: true
  • Rewrites the location host/port on (301/302/307/308) redirects based on requested host/port.
bodyRewrite (Boolean)
  • Default: true
  • Replace all proxyHost:proxyPort by requestedHost:requestedPort from the response body
  • Works only for these MIME-types:
    • text/html
    • text/css
    • text/xml
    • text/javascript
    • application/javascript
    • application/json
headers (Object)
  • Default: {}
  • Adds request headers
handle404 (Boolean)
  • Default: true
  • Let php handle not-found filepaths
proxyOpts (Object)
phpOpts (Object)
verbose (Boolean)
  • Default: false
  • Log additional informations
quiet (Boolean)
  • Default: false
  • If true, don't write anything to the console
onStart (Function)
  • Default: function () {}
  • The onStart function will be called when the php built-in server is ready.
bin (String)
  • Default: php
  • Absolute Path / Alias to the php binary
promptBinary (Boolean)
  • Default: false
  • If set to true and php isn't found, the middleware will ask the user a path/alias to a php binary
  • Be careful to not have other log during the middleware setup when using this. You can use the onStart options to wait for the middleware to be ready before logging anything else

Package Sidebar


npm i php-server-middleware

Weekly Downloads






Last publish


  • pqml