Programs

PHP-MNGR

Run multiple PHP projects side by side, each pinned to its own PHP version from 7.2 through 8.3, without polluting your host system.

Overview

PHP-MNGR maintains a pool of PHP-FPM containers — one per supported PHP version — and an nginx gateway that routes requests to the right pool based on each project’s pinned version. You get true per-project PHP versions with zero host installation.

Supported PHP versions

Every minor release we actively track:

  • php:7.2, php:7.3, php:7.4
  • php:8.0, php:8.1, php:8.2, php:8.3

Create a project

From the control panel:

  1. Navigate to Projects.
  2. Click New project.
  3. Pick a name (e.g. my-site), a PHP version and a webroot.
  4. Click Create. PHP-MNGR scaffolds a directory at data/projects/my-site/.

Or scaffold from the command line:

bash
$./launch.sh php new my-site --version 8.3 --doc-root public

Switch PHP version

Changing a project’s PHP version is a single click — the gateway reloads and subsequent requests are served by the new pool. There is no downtime for other projects.

Extensions & composer

The default pools ship with a sensible set of extensions (pdo_mysql, pdo_pgsql,gd, intl,zip, bcmath,redis). Composer is available inside each pool — use the built-in terminal in the panel or exec directly:

bash
$./launch.sh php exec my-site composer install
$./launch.sh php exec my-site php artisan migrate

Troubleshooting

  • 502 Bad Gateway — the pool for the selected PHP version is not running. Restart it from the panel or via./launch.sh php restart 8.3.
  • Permission denied on data/projects — on Linux, the FPM pools run as UID 1000. If your host user differs, run ./launch.sh php chown my-site.

For anything more exotic, see Troubleshooting.