PHP: versions and concurrent FPM

Multi-PHP including 8.5, per-project pin, Native FPM and Docker apply.

Supported versions

  • Docker: PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5
  • Native: PHP 8.0, 8.1, 8.2, 8.3, 8.4, 8.5. Extra versions (especially 8.0 and 8.1) must be installed from Settings → Runtime before they can run. PHP 7.4 is Docker-only.

The PHP tab lists installed Native versions and those still available to download. A project pin for an uninstalled Native version is kept, falls back to a routable version, and warns on sync.

Runtime status

Shows PHP version (configured vs actual), Zend, SAPI, OPcache, limits, Composer and WP-CLI. Copy php.ini path, phpinfo().

Global php.ini

Save settings writes ~/Library/Application Support/MacFullStack/php/99-macstack.ini. Reset restores defaults. For one project only, use Project config (.macstack/php.ini).

Extensions

Catalog is mode-aware (Native vs Docker) with categories (Core / Cache / DB / Imaging / Debug). Docker-only items are marked and cannot be installed on Native. Docker: add via install-php-extensions (~10–60s); Bake into image for a full rebuild. Native: bundled modules are enabled from the managed PHP build; PECL packages (e.g. memcached, mongodb, xdebug) install into the selected PHP prefix. Defaults often include zip, xdebug, redis, memcached.

Concurrent / per-project PHP

  1. Install the PHP versions you need (Settings → Runtime on Native, or Docker image rebuild)
  2. Set the stack default on the PHP tab and Apply
  3. Override per project on the card or:
macstack projects php --name blog --version 8.3

(set-php is a visible alias of projects php.)

Native: one php-fpm per installed version; nginx routes each site to its pin. If a pin is not installed, MacFullStack keeps the pin, falls back to a routable version, and warns on sync.

Docker: applying a new default PHP may rebuild the web image (several minutes the first time).

Xdebug

Debug mode sets XDEBUG_MODE=debug. IDE listens on port 9003. From Docker use host.docker.internal.

PHP console

Runs php -r in the web container (Docker) or managed PHP (Native).

See also

Download Pro Teams