Run any PHP stuff within your browser.
The Browser PHP package offers a collection of commands for running PHP from the Node CLI or for launching a PHP server from Node. Perfect for running a Laravel project in CodeSandbox, for example.
This article provides an in-depth exploration of the package.
npm install --save-dev @capsulescodes/browser-phpThis package gives access to three binaries. php-cli and php-server from node_modules, composer from vendor.
node node_modules/.bin/php-cli
Or add script in package.json
"scripts" : {
"php" : "php-cli"
},
Example
npm run php -r "echo 'Hello Browser PHP World!';"
> Hello Browser PHP World!
node node_modules/.bin/php-server
Or add script in package.json
"scripts" : {
"serve" : "php-server"
},
Example
npm run serve
> PHP server is listening on url http://localhost:2222
node node_modules/.bin/php vendor/bin/composer
Or add script in package.json
"scripts" : {
"composer": "php-cli vendor/bin/composer"
},
Example
npm run composer
> ______
> / ____/___ ____ ___ ____ ____ ________ _____
> / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
> / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
> \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
> /_/
> Composer version 2.8.12 2025-09-19 13:41:59
The scripts can be configured with environment variables
-
BROWSER_PHP_VERSION: The PHP version you need | default :8.3 -
BROWSER_PHP_CLI: The CLI output mode | default :xterm -
BROWSER_PHP_COMPOSER_VERSION: The Composer executable version | default :2.8.12 -
BROWSER_PHP_COMPOSER_PATH: The Composer executable path | default :vendor/bin -
BROWSER_PHP_COMPOSER_NAME: The Composer executable name | default :composer -
BROWSER_PHP_SERVER_HOST: The host name you need | default :http://localhost -
BROWSER_PHP_SERVER_PORT: The port you need | default :2222 -
BROWSER_PHP_SERVER_PATH: The directory path you need | default :public -
BROWSER_PHP_SERVER_DEBUG: The debug mode you need | default :false
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.