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.
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.
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.
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
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.
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
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.