Skip to main content

PHP Versions in ISPmanager 6: Switching and php.ini

ISPmanager 6 · 19.04.2026 · 4 min read
Illustration for “PHP Versions in ISPmanager 6: Switching and php.ini”

ISPmanager 6 lets you run different PHP versions for each site independently. PHP runs via FastCGI (FPM) — faster than mod_php and more secure (user isolation).

Changing the PHP version for a site

WWW → Domains → select the domain → Edit → PHP → select the version.

✅ Changing the PHP version applies without restarting the server — the site keeps running without interruption.

Available PHP versions

VersionStatusRecommended for
PHP 7.4EOL (not supported)Old CMS
PHP 8.0EOLLegacy projects
PHP 8.1Security fixesStable projects
PHP 8.2ActiveWordPress 6.x ✅
PHP 8.3ActiveNew projects ✅

EOL (End of Life) means the PHP developers no longer release security patches for that branch. A site on an EOL version keeps running, but every new vulnerability in the interpreter stays unpatched — including on a version that shipped with an old server image at the initial setup.

Installing additional PHP extensions

Settings → PHP → select the version → Extensions → enable the ones you need. The list of extensions is specific to each PHP version and is updated separately whenever ISPmanager itself is updated.

Commonly needed extensions:

  • php-redis — Redis object cache
  • php-imagick — image processing
  • php-gd — graphics
  • php-zip — archives
  • php-intl — internationalization

Changing PHP parameters (php.ini)

Settings → PHP → select the version → PHP Parameters.

ParameterRecommended value
memory_limit256M
upload_max_filesize64M
max_execution_time60
max_input_vars3000

Custom php.ini for a site

# Create a .user.ini file in the site root
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 60

Order in which PHP settings are applied

  • The PHP version's system php.ini — the default baseline values for all sites
  • The FPM pool settings for the specific domain, set through ISPmanager
  • The .user.ini file in the site root — applies without restarting FPM, but with a delay of up to 5 minutes by default
  • An ini_set() call inside the PHP code — applies only within the current request and overrides everything listed above
⚠️ After changing PHP parameters, FPM restarts automatically through ISPmanager. Via SSH it requires a manual restart: systemctl restart php8.2-fpm

Common PHP errors after changing versions

MessageWhat it means
502 Bad GatewayNginx can't reach PHP-FPM — often the FPM socket still points at the old path after a version change
Fatal error: Uncaught Error: Call to undefined functionThe new PHP version is missing an extension the code needs — enable it in the Extensions section
Deprecated: Creation of dynamic propertyThe code was written for PHP 7.x — starting with PHP 8.2 such constructs are deprecated but not yet fatal
PHP Fatal error: Allowed memory size exhaustedThe memory_limit value is too low for the script — often surfaces during large file imports or heavy CMS plugins

mod_php, FPM, and CGI: PHP modes compared

Criterionmod_php (Apache)PHP-FPMCGI
User isolationNone (shared Apache process)Yes (separate pool per user)Yes, but slower
PerformanceMediumHighLow
Support in ISPmanager 6Only with Apache as the primary serverDefault for Nginx and Nginx+ApacheLegacy, not recommended

When switching the PHP version won't help

  • The error is caused not by the PHP version but by a missing extension — switching versions without enabling the required extension just carries the same error to the new version
  • The code uses deprecated constructs (for example, each(), removed in PHP 8.0) — the code needs a fix, not just a version change in the panel
  • The problem is at the database or external API level — switching PHP doesn't fix MySQL timeouts or a third-party service being unavailable
  • The extension is installed but not wired to the right FPM pool — after enabling an extension in the panel, an explicit restart of that specific pool is sometimes needed, not just the general PHP service

Verifying the result

After changing the version, confirm the site actually uses the intended PHP, not a stale cached process.

# Check the active PHP version for the site via phpinfo
echo "<?php phpinfo(); ?>" > /var/www/user1/data/www/example.com/www/info.php
curl -s http://example.com/info.php | grep "PHP Version"

# Delete info.php right after checking — phpinfo exposes server configuration and file paths

If the version in the output doesn't match what's selected in the panel, check that the FPM pool for the domain was actually recreated rather than left over from the previous version, and that opcache isn't serving stale compiled bytecode. Related topics: creating a website in ISPmanager 6 and installing WordPress on ISPmanager.

Was this article helpful?
← Back to Knowledge Base Ask Support