Managing PHP extensions with CloudLinux in Plesk

Extensions add capabilities such as database access, multibyte text handling, image processing and cryptography to PHP. Select the extensions your application requires and verify them under the website's actual runtime. Enabling every available extension is not a useful troubleshooting method.

What you need before you begin

Use the application's requirements page to make a list of missing or conflicting extensions. Note the selected PHP version and current extension choices. A version change can expose a different set of extensions or defaults.

01 Change the setting

  1. In Plesk, select the correct subscription and open PHP Selector from the available sidebar or additional tools. This guide applies to Linux subscriptions where the CloudLinux integration is installed. Windows Plesk uses its own PHP configuration.
  2. Check the active PHP version and which websites the selector change will affect. Plesk also has a native PHP Settings page for each domain. A CloudLinux setting will not automatically override a different Plesk PHP handler. Confirm which handler serves the website first.
  3. Open Extensions for the intended PHP version. Compare the application requirements with the entries shown in the selector.
  4. Enable a required extension or disable a confirmed incompatible optional extension, then save if requested. Change one dependency at a time when diagnosing a fault.
  5. Run the application's requirements check and test the feature that needed the extension. If you changed the PHP version, recheck all mandatory dependencies.

02 Example: check only the required extensions

Prefer the authenticated application health screen. If it has none, a developer can use a temporary PHP file behind an existing password or IP access restriction on the affected website:

Code or configuration example
<?php
header("Content-Type: text/plain; charset=UTF-8");
foreach (["mbstring", "gd", "mailparse"] as $extension) {
    echo $extension, ": ",
        extension_loaded($extension) ? "loaded" : "missing",
        PHP_EOL;
}

Replace the list with the application documented dependencies. A loaded result applies to the PHP runtime serving that request; it does not establish codec support or the cron runtime. A missing result after a saved selector change calls for checking the domain handler. Delete the diagnostic file after use and confirm its URL no longer serves it.

Confirm the expected result

Use an authenticated application diagnostics screen where possible. A successful checkbox change is only configuration feedback; the application must report the extension loaded in the runtime that handles its requests. Check background tasks separately when they use CLI PHP.

Why does the application still report a missing PHP extension?

If the selector says native or hides extension controls, establish which handler manages the site. Do not switch production PHP solely to make a checkbox appear. Missing installed packages or disabled server-level extensions need support or server administrator action.

  • 0 Users Found This Useful
  • plesk, development
Was this answer helpful?

Related Articles

Changing the PHP post_max_size limit with CloudLinux in Plesk

post_max_size limits the size of the entire HTTP POST body received by PHP. It includes...

Changing the PHP upload_max_filesize limit with CloudLinux in Plesk

upload_max_filesize sets the maximum size of an individual uploaded file accepted by PHP. The...

Configuring PHP error display and logging with CloudLinux in Plesk

PHP errors are useful for diagnosis, but displaying them on a public site can expose filesystem...

Adjusting the PHP memory limit with CloudLinux in Plesk

memory_limit limits memory available to an individual PHP script. Increasing it can help a...

Enabling the Mailparse extension with CloudLinux in Plesk

Mailparse helps PHP software inspect MIME email messages and attachments. A helpdesk, mail...