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.
IN THIS ARTICLE
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
- 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.
- 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.
- Open Extensions for the intended PHP version. Compare the application requirements with the entries shown in the selector.
- 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.
- 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:
<?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.
Related articles
- Changing PHP versions, extensions and application limits
- Diagnosing website problems with error logs and account information
- Creating and monitoring cron jobs and scheduled tasks
- Adjusting the PHP memory limit with CloudLinux in Plesk
- Configuring PHP error display and logging with CloudLinux in Plesk