Applications often require PHP extensions – intl for translations, imagick for image processing, redis for caching, ionCube for encoded software like WHMCS. Plesk ships several PHP versions, each with its own set of extensions that administrators can enable or extend.
Before you start
- Plesk administrator access and root SSH.
- Know which PHP version the site uses; see PHP version per domain.
Enable bundled extensions
- Go to Tools & Settings → PHP Settings.
- Click the PHP version, for example 8.3.x FPM application.
- Open the PHP extensions tab.
- Tick extensions to enable – for example
intl,soap,bcmath,gmp– and untick unused ones. - Click OK. Plesk reloads PHP-FPM for that version.
ionCube Loader is usually available here as a checkbox too, which is the simplest way to enable it.
Install extra extensions with PECL
For extensions not bundled with Plesk PHP, use the PECL tool belonging to that version. Install build dependencies first (on AlmaLinux: dnf install gcc make autoconf plesk-php83-devel; package names follow the version), then:
/opt/plesk/php/8.3/bin/pecl install redisEnable it by creating /opt/plesk/php/8.3/etc/php.d/redis.ini containing extension=redis.so, then register it with Plesk and reload:
plesk bin php_handler --reread && service plesk-php83-fpm restartRepeat for each PHP version that needs the extension. On Debian/Ubuntu, the devel package is named like plesk-php83-dev.
Imagick
Install ImageMagick development libraries (ImageMagick-devel or libmagickwand-dev), then pecl install imagick for the PHP version and enable it as above. Check the WordPress Site Health screen afterwards, which reports missing image modules.
Verify
- Command line:
/opt/plesk/php/8.3/bin/php -m | grep -i redis. - Web: a temporary
phpinfo()page in the site, deleted afterwards. - Plesk: the extension appears ticked in PHP Settings → extensions.
Keep extensions working after updates
PHP minor updates from Plesk keep PECL extensions working in most cases, but major PHP versions need the extension rebuilt for that version. Keep a short list of custom extensions per server so you can repeat installs when adding a new PHP version.
Troubleshooting
- phpize not found: the PHP devel package for that version is missing.
- Extension installed but not loaded: the
.inifile is in the wrongphp.dfolder or the FPM service was not restarted. - Site still reports missing extension: the site uses a different PHP version or handler.
