Skip to content

sindresorhus/php-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

php-server

Start a PHP server

Uses PHP's built-in development web server (not for production use).

The Node.js process is automatically kept alive as long as the PHP server is running.

Install

npm install php-server

Usage

import phpServer from 'php-server'; // Basic usage const server = await phpServer(); console.log(`PHP server running at ${server.url}`); // With custom configuration const server2 = await phpServer({ port: 8080, hostname: 'localhost', base: './public', open: true, // Opens browser automatically }); // Clean up when done server.stop(); server2.stop();

API

phpServer(options?)

Returns an object with the following properties:

options

Type: object

port

Type: number
Default: 0

The port on which you want to access the webserver.

Specify 0 to use a random port.

hostname

Type: string
Default: '127.0.0.1' (Usually the same as localhost)

The hostname the server will use.

Use '0.0.0.0' if you want it to be accessible from the outside.

base

Type: string
Default: '.'

The directory the server will serve from.

open

Type: boolean | string
Default: false

Open the server URL in the browser.

Can be one of the following:

  • true: Opens the default server URL (http://${hostname}:${port}).
  • A relative path: Opens that path on the server (e.g., '/about' opens http://${hostname}:${port}/about).
  • An absolute URL: Opens that exact URL (e.g., 'http://localhost:3000').
env

Type: object
Default: {}

Set environment variables for the PHP process.

router

Type: string

Optionally specify the path to a router script that is run at the start of each HTTP request. If this script returns false, the requested resource is returned as-is. Otherwise, the script's output is returned to the browser.

Example router script:

<?php // router.php if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) { return false; // Serve the requested resource as-is } else { echo "<p>Thanks for using php-server :)</p>"; } ?>
binary

Type: string
Default: 'php' (The one in your $PATH)

The path to the PHP binary.

Can be useful if you have multiple versions of PHP installed.

ini

Type: string
Default: The built-in php.ini

A path to a custom php.ini config file.

directives

Type: object
Default: {}

Add custom INI directives.

Example:

const server = await phpServer({ directives: { memory_limit: '256M', max_execution_time: '60', }, });