Linux runtimes

PHP, Node and Bun, ready to run.

Install ready-made packages from PXM's signed Linux catalog. The server needs no compiler, Docker or Homebrew. A package is registered only after its signature, architecture, checksum and complete file inventory pass verification.

PHP versions

The Linux release includes maintained PHP lines 8.2, 8.3, 8.4 and 8.5. PHP 8.6 prereleases are available through an explicit preview channel. Unsupported older PHP lines are not included.

Terminal
pxm php available
pxm php install 8.5
pxm php use 8.5
pxm php -v
cd /home/deploy/my-app
pxm php isolate 8.4

The project selection is stored in .php-version. The global selection applies when no project selection exists. A line pin follows that line; an exact version pin continues to use its retained, verified package after a runtime update. Missing, damaged or ambiguous historical packages are refused. Check available packages again to see published updates, then install the chosen line. Production websites retain their exact installed package until you update the site or confirm a pxm update plan that includes it. Updating a global CLI selection does not silently replace a running website's PHP worker.

Terminal
pxm php available --preview
pxm php install 8.6 --preview

Preview packages are marked separately. An upstream release becomes installable after PXM has built, verified and published it. A newly announced upstream version is not presented as an installable package before those checks finish.

Extensions and limits

intl and sodium are built in. Stable PHP packages include compatible Xdebug and SPX modules; the 8.6 preview includes a compatible Xdebug prerelease and explicitly reports SPX as unavailable. Extension settings never modify immutable package files.

Terminal
pxm php extensions list --version 8.5
pxm php extensions enable xdebug --version 8.5
pxm php extensions disable xdebug --site app.example.com
pxm php settings --memory 512M --upload 128M --timeout 60
pxm php settings --version 8.5 --memory 768M
pxm php settings --site app.example.com --memory 512M

Global and version defaults apply to managed PHP commands. Website limits remain explicit per site. Changes affecting a running PHP site go through its normal deployment health check, preserving the previous generation if the change fails. Xdebug connects to a local IDE only. SPX's public HTTP interface remains disabled. See diagnostics and debugging for command-scoped debugging and coverage.

Node.js

Terminal
pxm node available
pxm node install 24
pxm node use 24
pxm node --version
cd /home/deploy/my-app
pxm node isolate 24
pxm npm --version

The catalog provides Node 24 LTS and Node 26 Current for both architectures. Official upstream artifacts are authenticated against signed checksums. A project selection uses .node-version; npm and npx use the same managed runtime. Installing a newer patch updates the selected line while a running website retains its exact worker until you update that site or confirm a pxm update plan that includes it.

See websites for PHP-FPM and Node deployment, developer tools for Composer and project tasks, and release verification for the supported targets.

Optional Bun

Bun is a separate, optional runtime. Setup leaves it skipped unless you select it; unattended setup accepts --bun stable, an explicit version or --bun skip. It does not replace your Node selection.

Terminal
pxm bun available
pxm bun setup
pxm bun use 1
pxm bun --version
cd /home/deploy/my-app
pxm bun isolate 1
pxm bun install
pxm bun run dev
pxm bunx --bun vite --help

Use pxm bun setup [VERSION] to install the managed runtime. Without a version it selects the latest published stable package. pxm bun install installs project dependencies; ordinary add, run, test, build and update arguments belong to Bun. pxm runtime install bun VERSION is another runtime-install command.

A project uses .bun-version, independently of PHP and Node pins. PXM-created pins select the Bun major; an exact existing pin keeps its verified historical package. Cache files and global packages are stored outside the immutable signed runtime. PXM ignores hidden BUN_OPTIONS; pass flags directly. Direct bun upgrade is refused so it cannot replace managed bytes. Use pxm update or pxm bun setup stable; a project script named upgrade still runs with pxm bun run upgrade.

AMD64 Bun requires SSE4.2. PXM checks this before installing or executing it. Bun does not require a PXM Pro license.

Update what is installed

Terminal
pxm update --check
pxm update
pxm update --yes --json

The check builds a read-only plan. Applying it shows the exact versions, sources and downtime, then asks for confirmation unless --yes was supplied. Only registered PXM components are included. PHP stays within each installed major.minor line; Node and Bun stay within each installed major. Stable installations stay on stable releases. System packages and project dependencies are unchanged.

Runtime and CLI packages come from PXM's signed Cloudflare feeds. Composer uses its official getcomposer.org HTTPS metadata and SHA-256 instead; it is included only when already installed. Database engine updates require PXM Pro and pause the selected service for a clean backup and validation. Stopped services stay stopped. Memcached loses cached entries during its restart. Site workers pass deployment health checks before the route changes; a router restart can briefly interrupt connections.

Project pins, stopped routes or retained helper processes may leave pending actions. The report lists those separately and retains completed steps if another step fails. The CLI is updated last and leaves the running manager unchanged. Run pxm daemon restart in a maintenance window to activate it; owned autostart databases restart, while non-autostart databases stay stopped until started manually.