Offer Free .in, .co.in or .com domain for year one with web or WordPress hosting on a 12-month+ term, plus free migration. See the offer
Web hosting & cPanel

Change PHP version and extensions in cPanel

Each site can run the PHP version it was built for, with the extensions and limits it needs. Switching takes seconds and is just as quick to undo. New accounts start on PHP 8.3; check what your theme, plugins or app support before you move.

  • Updated
  • 7 min read
  • Level Beginner

Before you start

  • Your cPanel login, or open cPanel straight from the client area.
  • The PHP versions your app supports, from its documentation or the "Requires PHP" line of each WordPress plugin.
  • For a live business site, a fresh backup or a staging copy to try the change on first. Every WordPress plan includes staging.
Hands-on timeAbout 5 minutes
DowntimeNone; changes apply in seconds

Which cPanel tool does what

cPanel has three PHP tools under cPanelSoftware. Most people only ever need the first one.

ToolUse it toApplies to
Select PHP VersionChoose the version, tick extensions and change limits such as memory_limitEvery domain set to inherit
MultiPHP ManagerGive one domain a different version from the rest of the accountThe domains you tick
MultiPHP INI EditorChange limits for a domain set to its own version in MultiPHP ManagerThe domain you pick

The rule that explains most confusion: Select PHP Version only affects domains whose MultiPHP Manager setting is "inherit", which is the default. Once you pin a domain to a specific version in MultiPHP Manager, it stops following Select PHP Version, including its extensions and options.

Which version to pick, as of October 2026:

VersionUpstream supportOur advice
8.5Newest release. Full support until 31 Dec 2027, security fixes until 31 Dec 2029Only when your app and every plugin list support; try it on staging first
8.4Full support until 31 Dec 2026, security fixes until 31 Dec 2028New sites, once your plugins list support
8.3Security fixes only, until 31 Dec 2027The default for new accounts and the safe choice
8.2Security fixes only, ending 31 Dec 2026Plan your move to 8.3 now
8.1End of life since 31 Dec 2025Only for code you can't update yet

Step 1: Switch the PHP version

  1. Open Select PHP Version

    Go to cPanelSoftwareSelect PHP Version. The top of the page shows the Current PHP version for the account.

    cPanel›Software›Select PHP Version
    PHP SelectorExtensions · Options
    Current PHP version
    8.3 ▾
    Applies to
    Domains set to inherit
    bcmathgdimagickintlioncube_loaderopcacheredissoapzip
    Set as currentReset to default
    Example. The list of extensions is longer than this; ticked boxes are enabled for the selected version.
  2. Choose a version and apply it

    Pick the version from the drop-down and click Set as current if your screen shows that button; on newer screens the change applies as soon as you choose. Reload your site in a private window and click through a few pages.

  3. Need one domain on a different version?

    Open cPanelSoftwareMultiPHP Manager, tick the domain, choose a version from the PHP Version list and click Apply. To hand it back to Select PHP Version later, choose inherit.

    cPanel›Software›MultiPHP Manager
    DomainPHP versionDocument root
    yourdomain.ininherit (8.3)/public_html
    old.yourdomain.inPHP 8.1 (ea-php81)/old.yourdomain.in
    Apply
    Example. The main site follows Select PHP Version; a legacy subdomain is pinned to 8.1 until its code is updated.

Step 2: Turn extensions on or off

Extensions are optional PHP modules, for image processing, encrypted scripts or caching. In Select PHP Version, open the Extensions tab and tick or untick a box; each change saves straight away. Each PHP version keeps its own list, so check it again after switching versions.

If you runMake sure these are ticked
WordPressmysqli (or nd_mysqli), imagick, intl, zip, exif, gd
WooCommercethe WordPress set, plus bcmath and soap if a payment or shipping plugin asks
Laravelbcmath, ctype, fileinfo, mbstring, openssl, pdo_mysql (or nd_pdo_mysql), tokenizer, xml
Encoded scripts (some billing tools, licensed themes)ioncube_loader, or sourceguardian if the vendor uses it
Redis object cache (WP Pro and Business)redis

Pairs that can't both be on. The list includes mysqli and nd_mysqli, and pdo_mysql and nd_pdo_mysql. They do the same job, so enable one of each pair, never both. If one is already ticked, leave it. Keep opcache on: it's the biggest free speed-up PHP has.

Step 3: Raise limits: memory, uploads and timeouts

Open the Options tab in Select PHP Version and click a value to change it. These are sensible values for a typical WordPress or WooCommerce site:

SettingSuggestedWhy you'd change it
memory_limit256M"Allowed memory size exhausted" errors; 512M for heavy page builders or big imports
upload_max_filesize64MUploading large images, videos, themes or plugin zips
post_max_size64MMust be at least upload_max_filesize, or uploads still fail
max_execution_time120Long imports, backups or reports timing out (in seconds)
max_input_vars3000Large menus or page-builder pages that don't save completely

For a domain pinned in MultiPHP Manager, change the same values in cPanelSoftwareMultiPHP INI Editor: choose the domain in Basic Mode, edit and click Apply.

More memory per request isn't more memory for the account. memory_limit caps a single PHP request; your plan caps the whole account (1 GB on Launch, 2 GB on Orbit, 4 GB on Galaxy, 8 GB on Universe). Setting 2G on Launch won't help, and lets one runaway script use everything. Raise it only as far as your app needs.

Check the change took effect

For WordPress, the quickest check is WordPressToolsSite HealthInfoServer, which lists the PHP version, memory limit and upload size. For anything else, use a phpinfo page:

  1. Create the file

    In cPanelFilesFile Manager, open the site's folder (usually public_html), create a file with a hard-to-guess name such as info-7f3k2q.php and add this single line:

    <?php phpinfo();
  2. Open it and read three values

    Visit https://yourdomain.in/info-7f3k2q.php. Check PHP Version at the top, then search the page for memory_limit and upload_max_filesize. The Local Value column is what your site actually uses.

  3. Delete the file straight away

    Never leave phpinfo online. It shows your server paths, loaded modules and configuration, which is exactly what someone probing for weaknesses looks for. Delete it as soon as you've read it.

Using the cPanel Terminal? php -v shows the account's version, not the version of a domain pinned in MultiPHP Manager, so the browser check is the reliable one.

WordPress: Upgrade PHP without surprises

WordPress itself runs on every version we offer, and running a current one is part of our website speed checklist. What breaks on a PHP upgrade is usually an old plugin or theme. This order avoids most trouble:

  1. Update everything first

    Update WordPress, all plugins and the theme on your current PHP version. Remove plugins you no longer use, and check the "Requires PHP" and "Tested up to" lines of the ones that haven't been updated in a year.

  2. Try it on staging, then switch

    Change the version on your staging copy (or take a backup, and know how to restore a cPanel backup), then test the pages that matter: home, a post, a form, wp-admin and, for stores, a test checkout.

  3. Log errors quietly while you test

    Add these lines to wp-config.php above /* That's all, stop editing! */. Errors then go to wp-content/debug.log instead of your visitors' screens. Remove them when you're done:

    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );

If something breaks, switch back to the previous version: it takes effect in seconds. Then update or replace the plugin named in the log. Setting up a fresh site to test on? See Install WordPress with Softaculous.

PHP version troubleshooting in cPanel

White screen or 500 error after switching

Switch back to the previous version first, so the site is up again. Then open the error_log file in the site's folder, or cPanelMetricsErrors. The last lines name the file, and usually the plugin, that failed on the new version.

Changes in Select PHP Version don't apply to one domain

That domain is pinned to its own version in MultiPHP Manager. Set it back to inherit, or change its limits in MultiPHP INI Editor instead.

Uploads still fail with "exceeds upload_max_filesize"

Check three things: post_max_size is at least as large; the phpinfo Local Value shows your new number; and no old php_value lines in .htaccess or a leftover php.ini from a previous host override it. Remove those lines and manage limits in cPanel only.

"Your PHP installation appears to be missing the MySQL extension"

Neither mysqli nor nd_mysqli is enabled for the version you switched to. Tick one of them in the Extensions tab and reload the site.

"Site error: the ionCube PHP Loader needs to be installed"

Tick ioncube_loader in the Extensions tab. If the error then says the file was encoded for a different PHP version, the vendor's encoded files don't support your version yet. Stay on the version they list until they release an update.

Was this guide helpful?Your answer stays in this browser; nothing is sent unless you write to us below.

Related guides

All 16 guides

Still stuck? Ask an engineer.

Tickets and email are answered 24/7 in English and Hindi. Tell us the domain, the version you switched to and the last lines of its error_log.