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.
npm install php-serverimport 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();Returns an object with the following properties:
stdout- Thesubprocess.stdout.stderr- Thesubprocess.stderr.url- The URL to the server.stop()- A method, which when called, stops the server.
Type: object
Type: number
Default: 0
The port on which you want to access the webserver.
Specify 0 to use a random port.
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.
Type: string
Default: '.'
The directory the server will serve from.
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'openshttp://${hostname}:${port}/about). - An absolute URL: Opens that exact URL (e.g.,
'http://localhost:3000').
Type: object
Default: {}
Set environment variables for the PHP process.
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>";
}
?>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.
Type: string
Default: The built-in php.ini
A path to a custom php.ini config file.
Type: object
Default: {}
Add custom INI directives.
Example:
const server = await phpServer({
directives: {
memory_limit: '256M',
max_execution_time: '60',
},
});