On CloudLinux servers, end users toggle PHP extensions on/off through the PHP Selector UI. On cPanel servers without CloudLinux, extensions are managed at server level — your account uses whatever the server admin compiled in for each PHP version. This guide covers how to see what’s available, how to confirm if a needed extension is loaded, and what to do when one isn’t.
Why extensions work differently here
cPanel’s EasyApache 4 (EA4) builds PHP from packages — each PHP version (ea-php82, ea-php83, ea-php84, etc.) ships with a set of extensions installed by the server administrator. These are installed system-wide for everyone on the server.
Without CloudLinux:
- Every user on the server has access to the same extensions.
- You can’t toggle them per-account from cPanel — that’s a CloudLinux PHP Selector feature.
- To enable or disable an extension you need server admin to install/remove it from EasyApache 4.
On iWebVault we install the standard set covering 99% of needs. For anything missing, open a ticket.
Checking what’s loaded for your domain
Method 1: phpinfo
Create a file info.php in your site root:
<?php phpinfo(); ?>
Visit it. Browser shows a comprehensive page with sections per extension — anything listed is loaded. Use Ctrl+F to find specific extensions (intl, mbstring, redis, etc.).
Delete the file immediately after. phpinfo leaks server details useful to attackers.
Method 2: WordPress Site Health
WP Admin → Tools → Site Health → Info tab → expand Server section. Shows PHP version, memory limits, and a list of loaded extensions specifically relevant to WordPress.
WordPress also flags missing recommended extensions in the Status tab — useful at-a-glance check.
Method 3: phpinfo through cPanel
Some cPanel versions expose phpinfo for each PHP version directly in the MultiPHP INI Editor or MultiPHP Manager pages — look for a “PHP info” link if present.
Extensions standardly installed on iWebVault
Across ea-php74 through ea-php84, our standard extension set includes:
- bcmath — arbitrary precision math (WooCommerce uses this).
- curl — HTTP client (most plugins need it).
- gd — image manipulation (WordPress thumbnails).
- imap — IMAP client functions.
- intl — internationalization (i18n).
- mbstring — multibyte strings (UTF-8 handling).
- mysqli, mysqlnd, pdo, pdo_mysql — MySQL/MariaDB drivers.
- opcache — bytecode cache for performance.
- redis — Redis client (for sites using Redis caching).
- soap — SOAP web services.
- sodium — modern cryptography.
- zip — zip file handling.
- xml, simplexml, dom — XML processing.
- json — JSON handling (built into PHP 8).
Specialty extensions like imagick (ImageMagick), gmp, swoole, and ioncube_loader may be available depending on your specific server — check phpinfo to confirm.
When an application complains about a missing extension
Step 1: Confirm it’s actually missing
“Extension not loaded” sometimes means “not loaded for the current PHP version”, which depends on which version your domain runs. Steps:
- Check which PHP version the domain uses (MultiPHP Manager).
- Verify via phpinfo that extension actually isn’t loaded for that version.
- Check other PHP versions if available — sometimes an extension is on ea-php83 but not ea-php81.
Step 2: Try switching PHP versions
If the extension is loaded on a different ea-phpXX, just switch your domain to that version. Test thoroughly — version switches can have other implications.
Step 3: Ticket support to install it
For genuinely missing extensions, open a ticket. Mention:
- Extension name (e.g.
imagick,gmp). - PHP version it’s needed for.
- The application requiring it (helps us prioritize and check compatibility).
Most extensions are available in EasyApache 4 packages and we can install them within hours. Some specialty extensions require building from source — those take longer.
Special cases
ionCube Loader
Some commercial PHP applications ship as ionCube-encoded files. Loader must match the PHP version. iWebVault servers install ionCube Loader for currently supported PHP versions automatically. Note: ionCube does not support PHP 8.0 — there’s a gap. PHP 7.4, 8.1, 8.2, 8.3, 8.4 are supported but 8.0 isn’t.
If your encoded application breaks after a PHP version switch, verify ionCube is loaded for the new version via phpinfo.
ImageMagick (imagick)
Preferred over GD for image manipulation — better quality, supports more formats. Not always installed by default. Ticket support to add it if you need WebP conversion, animated GIF handling, advanced manipulation.
mcrypt
Deprecated; removed from PHP 7.2+. If an old application requires it, the application needs updating. There’s no clean way to add mcrypt back to modern PHP — modernize the code to use OpenSSL or Sodium instead.
memcached vs memcache
Two different extensions:
- memcache — old, deprecated, single-d. Don’t use.
- memcached — modern, with -d. The one applications usually want.
Either way, also requires a memcached daemon running on the server — extension alone isn’t enough.
Common questions
“WordPress Site Health says intl is missing but I see it in phpinfo.” Site Health may be checking against an old PHP version while you actually run a newer one with intl loaded. Refresh after changing PHP versions; restart browser cache.
“Can I install an extension for my account only?” Not on a non-CloudLinux server. Extensions are server-wide. Open a ticket; we’ll evaluate.
“Why can’t I just upload an .so file and load it via php.ini?” Even if you have shell access to do this, the file would need to match the PHP version’s exact build flags. Risky and unreliable. Standard EasyApache 4 packages are the maintained path.
“How do I disable an extension that’s causing issues?” Without CloudLinux, you can’t disable extensions from your account. If an extension is genuinely problematic, the application should not call its functions, or you ticket support to investigate server-side.
What’s next
- PHP version selection: MultiPHP Manager.
- php.ini value tuning: Common settings.
- Per-domain configuration overlays: .htaccess and .user.ini.
Extensions in a non-CloudLinux environment are a server-level concern, not a per-account toggle. The standard iWebVault build covers nearly everything modern web apps need. For exceptions, ticket us with the extension and version — most additions take less than a business day.
Was this helpful?
Thanks for your feedback!