ServerAvatarDocs
Server management

PHP

Install PHP versions, pick the default, switch extensions on and off, and edit php.ini with a safety net.

A server can run several PHP versions side by side. Each application pins the one it wants, so a legacy site on 7.4 and a new one on 8.4 live on the same box without arguing.

PHP is where you install those versions, choose which one the bare php command means, and manage the extensions each version offers.

The PHP screen: an Install version button, a card for PHP 8.4 marked Default and Supported with an Edit php.ini button, and an Extensions tab showing 15 of 80 turned on with bcmath, curl, gd, igbinary, intl, mbstring, mysql and opcache

The version card

Each installed version gets a card showing:

  • The version number, with Default if it is the one php resolves to.
  • A lifecycle badge — Supported, Security fixes only, or No longer supported, with the date support ends or ended.
  • Which applications use it, listed by name.
  • Make default and Remove, unless it is the version the panel itself runs on.

Changing the default does not move your applications

As the card says: "Your applications keep their own version — this only changes the php command." Switching an application to another version is done on that application's PHP settings screen.

Install a version

Click Install version. Only versions this server can actually install are listed — the panel checks what the distribution's repositories offer rather than showing a wishlist.

The Install a PHP version dialog with a Version dropdown set to PHP 8.5 and a Supported badge

Pick the version and click Install. It takes a few minutes. The card appears immediately with an Installing badge and walks through Preparing → Downloading → Unpacking → Configuring; the page updates on its own.

A version past end of life carries the warning "PHP 8.1 no longer gets security fixes. Install it only if an application needs it."

If every version the server offers is already installed, the dialog says so and there is nothing to pick.

Extensions

The Extensions tab lists what this version can load, with a one-line description of each — gd: resizes and crops images, intl: formats dates, numbers and currency for other languages. The summary above the list reads "15 of 80 turned on".

Search by name, or filter to All / On / Off. The toggle installs the extension's package if it is missing, which is why switching one on can take a few minutes rather than being instant.

Two kinds of row cannot be switched:

  • Always on — the panel itself needs this extension.
  • Built into PHP — compiled in and always available. They are listed in a collapsed section at the bottom so that searching for json explains itself rather than returning nothing.

A row can also report drift between the two SAPIs — On for websites, off for the command line, or the reverse — when the web and CLI configurations disagree.

OpenLiteSpeed works differently

On an OpenLiteSpeed server an installed extension is always on. You can install one from this screen, but not switch it off again.

Editing php.ini

Edit php.ini opens the whole file as PHP reads it, with the path it came from at the top.

The php.ini editor for PHP 8.4 showing the file contents in a dark code pane with its path /etc/php/8.4/fpm/php.ini, a warning checkbox to acknowledge the risk, and a Save and reload button

Saving is wrapped in a safety net, which the dialog describes before you touch anything: the file is backed up, written, tested with php-fpm -t, and reloaded. If PHP rejects it, the previous file is put back and nothing is reloaded.

You still have to tick the acknowledgement — "I understand a bad php.ini can stop PHP 8.4 FPM from starting, which would take every application on that version offline" — before Save and reload becomes available.

This file is server-wide

Every application on this PHP version is affected. For limits that belong to one site — memory limit, upload size, execution time — use that application's PHP settings instead.

Limits and caveats

  • Removing a version takes its extensions and settings with it. You can install it again, but the configuration does not come back.
  • The version the panel runs on cannot be removed or demoted. Its card says "The panel itself runs on this version."
  • An incomplete install is flagged, naming the missing packages, with a Complete install button rather than leaving you to guess.
  • ionCube has its own tab next to Extensions, off by default.

On this page