Skip to content

Multi PHP Domains Manager ​

The Multi PHP Domains Manager page assigns PHP versions and PHP-FPM settings per domain, so different sites on the same server can run on different PHP versions. In the panel it is titled PHP Manager Domains.

Multi PHP Domains Manager

Overview ​

URL: /admin/settings/php-manager-domains

Navigate to Settings > PHP > PHP Domain Assignment. The page is also the Domain Assignment tab of the PHP area, so you can switch between it and PHP Versions from the tabs above the table.

The page lists all domains hosted on the server with their current PHP configuration. Each row shows:

  • Domain - Fully qualified domain name. Non-ASCII names are shown in their readable Unicode form, and the search box accepts either that form or the Punycode one. See Internationalised domain names.
  • PHP Version - Currently assigned PHP version (e.g., 7.4, 8.0, 8.4).
  • Provider - The repository and handler serving that version, for example REMI (FPM).
  • Actions - Edit button to change the PHP version or PHP-FPM setting for the domain.

Editing a Domain ​

Click the Edit button next to a domain to open a modal with up to three tabs. Changes apply only to the selected domain and do not affect other sites on the server.

PHP Settings ​

  • PHP Version - any installed version available on the server. LSPHP versions are offered only where a LiteSpeed web server or the LSAPI Engine can serve them.
  • Enable PHP FPM - run the domain's PHP through its own PHP-FPM pool. The switch appears for REMI versions that support PHP-FPM, never on CloudLinux, where websites run on alt-php. On OpenLiteSpeed, a REMI version always runs through PHP-FPM, so the switch is locked on.

PHP-FPM Configuration ​

The domain's PHP-FPM pool. The tab appears while Enable PHP FPM is on. Only administrators set these values: the client panel has no such tab.

The PHP-FPM Configuration tab of the Edit domain dialog

  • Process Manager, Max Children, Start Servers, Min Spare Servers, Max Spare Servers, and Max Requests - how the pool starts and keeps its PHP processes.
  • Ping Path and Ping Response - the address in the domain's pool that answers a health check, and the word it answers with. Empty keeps the defaults, /ping and pong.
  • Terminate Timeout - how many seconds a single request may run before PHP-FPM stops it. 0 turns the limit off, which is the default.
  • Environment Variables - variables, each a name with a value, that the domain's PHP processes see.

Since panel 1.9.2, the ping path and response, the request timeout, and the environment variables are written to the domain's PHP-FPM pool when you save. Before, they were saved without reaching the pool. Because the pool must be able to load them, each value is checked when you save, and the field says what to change:

  • A variable name uses letters, digits, and underscores, and does not start with a digit.
  • A variable value and the ping response use letters, digits, and . _ - : , @ + %, without spaces or slashes. A variable needs a value: PHP-FPM does not start a pool with an empty one.
  • A variable value or ping response of true, false, yes, no, on, off, none, null, or a PHP constant name is refused, because PHP-FPM would convert it. Use another word, for example 1 or 0 for a value and pong for the ping response.
  • The ping path starts with / and uses letters, digits, and / . _ -. It must not end in .php, because PHP-FPM would then answer that script with the ping response instead of running it, and it must differ from the pool's status path.
  • The request timeout is a whole number of seconds.

Settings that never reached the pool, such as the status path, the access and slow logs, the resource limits, and the chroot and working directory, are no longer part of the domain's settings.

When a server is updated to 1.9.2, saved environment variables, ping paths, and ping responses that the pool cannot load are removed, the variables it can load are kept, and each domain's request timeout returns to the default, because before 1.9.2 only the client API could set it. If a value saved earlier still cannot be written to the pool, the tab shows it under Saved but not applied, and the pool runs without it. Change or remove the value and save.

Global Configuration ​

Per-domain php.ini values: Display Errors, Max Execution Time, Max Input Time, Max Input Variables, Memory Limit, Post Max Size, Upload Max Filesize, Session GC Max Lifetime, Session Save Path, and Zlib Output Compression. An empty field uses the PHP version's own value.

Saving ​

Saving applies the change to the server. PHP version updated confirms it and names the version that now serves the domain. When the server does not take the change, PHP version not changed gives the reason and the domain keeps running its previous version and settings.

Since panel 1.9.3, the panel also checks that the site runs the exact build you chose, Remi PHP, alt-php, or LSPHP, and not only the same release. When the site still uses another build, the change is rolled back, and PHP version not changed names both builds, for example that the site still uses Remi PHP 8.4 instead of alt-php 8.4.

New domains over the API ​

Since panel 1.9.3, a domain created through the administrator REST API, POST /api/hosting-account/domains, with php_version_id is set up on that PHP version, and the domain in the answer carries it. php_configuration in the answer gives the outcome of the PHP step. An unknown php_version_id answers 422 and creates nothing.

Search and Pagination ​

  • Search field - Filter the list by domain name.
  • Per page - Choose how many results to show: 5, 10, 25, 50, All.
  • A summary line (e.g., Showing 1 to 5 of 5 results) appears below the table.