
PHP provides the language runtime, while extensions add capabilities such as database connectivity, image processing, encryption, compression, and international text handling. A website may require a particular extension even when the PHP version itself is supported. This is why an application can fail after a migration or PHP change despite the main runtime appearing healthy.
The correct approach is to identify the application’s declared requirements, compare them with the active PHP environment, and enable only the modules that are needed.
Extensions expose functions and classes that PHP code can call. Some are bundled with PHP distributions, while others may be installed separately by the server administrator or hosting provider. Availability can vary by PHP version, operating system, and hosting platform.
| Extension | Common purpose | Example dependency |
|---|---|---|
| mysqli or PDO MySQL | Database connections | WordPress and many CMS platforms |
| curl | HTTP requests to remote services | API integrations and update checks |
| mbstring | Multibyte text operations | International text handling |
| gd or Imagick | Image processing | Thumbnail generation and media tools |
| openssl | Cryptographic functions | TLS-related and secure application operations |
| zip | Archive creation and extraction | Plugin installers and backup tools |
This is a general reference, not a universal list of required modules. Check the requirements for the specific application and version you run.
A server can have several PHP versions installed, each with a different extension set. The command-line PHP binary may also load a different configuration from the PHP-FPM pool serving the website. Running php -m over SSH tells you about that CLI binary, not necessarily the web handler.
Use the hosting control panel’s PHP settings or a protected diagnostic method to inspect the web runtime. Remove any temporary diagnostic file immediately after use.
Applications may display a clear message such as “required PHP extension is missing,” or they may fail later when code calls a function that is unavailable. The PHP error log may contain an “undefined function” or “class not found” message. The exact error and the file involved can help identify the dependency.
Do not assume every undefined function means an extension is missing. The function may belong to a plugin that did not load, a version-specific API, or application code with a typo. Confirm the source before changing server configuration.
Enable the required extension for the PHP version and domain that need it. Avoid turning on every available module without a reason. Extra modules can increase the software surface that must be maintained and may introduce configuration conflicts or unnecessary memory use.
On managed or shared hosting, the provider may control which modules are available. If a required extension is absent, provide the application requirement and the active PHP version when contacting support.
Do not assume extensions carry over automatically when switching PHP versions. Compare the old and new module lists, then test the site’s important workflows. Image processing, database connections, scheduled jobs, and third-party integrations are useful checks because they exercise different parts of the stack.
Some PHP capabilities are part of the runtime build, while others are delivered as separately managed extensions. Package names and enablement methods differ among distributions and control panels. Use the platform’s supported module list instead of copying package commands intended for a different operating system.
Some platforms require a PHP-FPM pool reload or a new worker process before a configuration change is active. Others apply the change automatically. Follow the hosting panel’s procedure, then confirm the extension appears in the web runtime and repeat the exact operation that originally failed. A module shown in the CLI output is not enough if the website uses a separate PHP handler.
For a site with several applications or subdomains, record the PHP version and required extensions for each one. This is particularly useful before a migration, where the destination may use a different operating system or package layout. An inventory turns a vague “the site broke” report into a concrete compatibility checklist.
PHP extensions are dependencies, and dependency checks should be part of application deployment and PHP upgrades. Verify the web runtime, match the application’s requirements, and avoid enabling modules blindly. This makes troubleshooting more precise and reduces surprises when a site moves between hosting environments.