How to update your PHP version in cPanel (2026)
Change your WordPress PHP version in cPanel’s Select PHP Version or MultiPHP Manager, pick a patched 8.3 or 8.4 build, test safely — and confirm the host patched the server’s ea-php packages.
By the Presscomet teamPublished 10 min read
On this page
What cPanel actually changes (and what it doesn’t)
If your WordPress site is on shared hosting, cPanel is almost certainly where you change the PHP version — through a tool called Select PHP Version or MultiPHP Manager. It takes about thirty seconds, and most of the time it just works. But there is one thing it is important to understand before you touch it, because in October 2026 it caught a lot of people out.
cPanel does not install PHP. Your host does. What the dropdown in cPanel does is pick which of the PHP builds your host has already installed should run your domain. On a typical cPanel/EasyApache server those builds are named ea-php74, ea-php80, ea-php81, ea-php82, ea-php83, ea-php84 and ea-php85. Changing the dropdown swaps your site from one to another. It does not download anything new.
That distinction is the whole story behind the PHP2Shell vulnerabilities (CVE-2026-109618 and CVE-2026-109619), two critical bugs in the PHP runtime itself that let an attacker run code on the server without logging in. They were fixed in specific PHP builds on 21 October 2026. If your host has installed the patched ea-php packages, picking a version in cPanel moves you onto a safe one. If your host has not updated those packages yet, then every option in the dropdown is still vulnerable — because you are only choosing between old builds.
- Where you change it
- Select PHP Version / MultiPHP Manager
- Safe choice for WordPress
- PHP 8.3 or 8.4
- Patched cPanel builds
- ea-php82–85 · 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12
- Also patched (backports)
- ea-php74 · ea-php80 · ea-php81
So this guide does two jobs: it walks you through changing the version safely, and it makes sure you ask your host the one question that actually determines whether you are protected. For the full background on the vulnerability itself, read PHP2Shell and WordPress; for the wider picture, our WordPress security guide puts it in context.
Check your current version first
Before you change anything, write down what you have now — both so you know whether you even need to move, and so you have a version to roll back to. The most reliable place is inside WordPress, because it reports the PHP that actually answers your visitors’ requests.
- Log in to wp-admin and open Tools › Site Health.
- Click the Info tab, then expand Server.
- Read the PHP version row (for example
8.1.29). PHP SAPI tells you how PHP runs — on cPanel it is usuallyfpm-fcgi(PHP-FPM) orcgi-fcgi.
Site Health
Server ▴
| Server architecture | Linux 6.8.0 x86_64 |
| Web server | nginx/1.26.2 |
| PHP version | 8.1.29 (Supports 64bit values) |
| PHP SAPI | fpm-fcgi |
| PHP max input variables | 1000 |
| PHP time limit | 30 |
| PHP memory limit | 256M |
Other panels: WordPress, Directories and Sizes, Drop-ins, Active Plugins, Database…
Compare that number with the patched releases: 8.5.12, 8.4.27, 8.3.36 and 8.2.35. Anything below the fixed version on its branch, or anything on PHP 8.1, 8.0 or 7.4, needs attention. Remember the version-number trap, though: a host that backports fixes may keep the old number, so a low number does not always mean “unpatched” — and a number at or above the fixed release is only safe if the build genuinely includes the fix. The only way to be certain is to ask your host, which is the final step below.
Select PHP Version vs MultiPHP Manager
cPanel has two tools that do the same job, and which one you see depends on your host’s setup. Both live under the Software section of cPanel.
The standard cPanel/EasyApache tool. It lists every domain on your account and the PHP version each one uses, and lets you switch between the ea-php builds the host installed.
- Open MultiPHP Manager ① from the cPanel home screen.
- Find your domain and read the PHP Version column ② — for example
PHP 8.1 (ea-php81). Versions marked “EOL” no longer get upstream security fixes. - Tick the domain, choose a new version from the PHP Version dropdown ③ and click Apply.
MultiPHP Manager
Set the PHP version for each domain. Versions marked “EOL” no longer receive upstream security updates.
| Domain | PHP Version | PHP-FPM |
|---|---|---|
| yoursite.com | PHP 8.1 (ea-php81) EOL | On |
| shop.yoursite.com | PHP 8.3 (ea-php83) | On |
On CloudLinux hosts (which most big shared hosts use) the tool is called Select PHP Version, the CloudLinux PHP Selector. It changes the version the same way, and it adds one useful thing: a list of PHP extensions you can enable or disable per version.
- Open Select PHP Version.
- Pick your version from the Current PHP version dropdown.
- Make sure WordPress’s required extensions stay ticked:
mysqli,curl,gdorimagick,mbstring,xml,zipandintl. A missingmysqliis the usual cause of a “missing the MySQL extension” error after switching.
On CloudLinux you may also see alt-php
alt-php builds behind Select PHP Version. Patched alt-php builds for PHP2Shell were released to the stable repositories, so a server whose packages are current will offer a fixed build — but that still depends on the host updating.Switch your version safely
The switch itself is a dropdown and a button. The care goes into making sure nothing on your site depends on something a newer PHP removed. If you are jumping several versions — say from 7.4 straight to 8.3 — treat it as a real change and test. If you are nudging 8.2 to 8.3, it is usually uneventful.
Step 1: Back up files and the database first
Use cPanel’s Backup Wizard or JetBackup if your host provides it, and download a copy off the server. Your host’s automatic backup is fine too, as long as you know how to restore it.Step 2: Update WordPress, plugins and theme
Most PHP-compatibility fixes ship as ordinary plugin updates, so install everything pending before you switch. Replace any plugin that hasn’t been updated in two years — those are the usual cause of fatal errors on new PHP.Step 3: Test on staging if you have it
Many cPanel hosts include WordPress Toolkit, which clones a site to a staging copy in a click. Switch the clone’s PHP version, click through your pages, and only then touch the live site.Step 4: Switch the live domain to 8.3 or 8.4
In MultiPHP Manager or Select PHP Version, set the domain toea-php83orea-php84and apply. The change usually takes effect within a minute.Step 5: Test, then watch the error log
Re-open Tools › Site Health › Info › Server to confirm the new version, then test the homepage, a post, a contact form, login and wp-admin. Turn on logging inwp-config.phpfor a day to catch anything quiet.
define( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true ); // writes wp-content/debug.logdefine( 'WP_DEBUG_DISPLAY', false ); // never print errors on the pageIf something breaks, roll back in the same screen
Want the long version of this — compatibility checks, common errors and a rollback plan? See how to check and update your PHP version in WordPress.
The catch: the host has to patch the server
Here is the part the dropdown can’t do for you. Picking ea-php83 only protects you against PHP2Shell if the server’s ea-php83 package has itself been updated to 8.3.36 or a backported equivalent. On a well-run host that happened automatically within a day of the 21 October release. On a slower one, you can select the “latest” version in cPanel and still be running a vulnerable build, because the package on disk is old.
cPanel shipped the fixes as EasyApache 4 package updates:
ea-php82,ea-php83,ea-php84andea-php85at 8.2.35, 8.3.36, 8.4.27 and 8.5.12.- Backported fixes for the end-of-life branches
ea-php74,ea-php80andea-php81, which keep their old version numbers but carry a 21 October 2026 (or later) build.
If you run the server yourself in WHM, you update and restart with a couple of commands. If you are a hosting customer, you can’t — so you ask, and you ask for specifics. “We’re aware and monitoring” or “we added firewall rules” is not the same as “the packages are patched and PHP has been restarted.” Firewall rules are a useful stopgap, but a patched runtime is the only real fix.
You control the dropdown, not the packages. So: switch off any end-of-life branch (8.1 or older) to 8.3/8.4, then send support the email below and keep their written reply. You want confirmation that the packages are patched and that PHP was restarted, because unrestarted workers keep the old code in memory.
Update the EasyApache packages and restart PHP-FPM and Apache so the running workers load the patched code:
$ sudo dnf upgrade --refresh 'ea-php*'# CloudLinux alt-php as well, if you use Select PHP Version$ sudo dnf upgrade --refresh 'alt-php*'$ sudo /scripts/restartsrv_apache_php_fpm$ sudo /scripts/restartsrv_httpdThen confirm in Site Health, or with a temporary phpinfo() page you delete afterwards, that the build date is 21 October 2026 or later.
Copy this, fill in your domain, and send it to support:
Subject Please confirm my cPanel PHP is patched for PHP2Shell
Hello, My site (yoursite.com) is hosted on your cPanel/shared hosting. After the PHP2Shell vulnerabilities (CVE-2026-109618 and CVE-2026-109619), I need to confirm the server is actually patched, not just that I can pick a PHP version in cPanel. Could you confirm, in writing: 1. That the EasyApache ea-php packages serving my account have been updated for both CVEs (ea-php82/83/84/85 at 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12, or the backported ea-php74/80/81 builds dated 21 October 2026 or later). 2. The exact PHP version and build date my domain now runs. 3. The date and time PHP-FPM / Apache was last restarted, so the patched code is actually loaded. 4. Whether any interim mitigation (WAF rules, disabled session upload-progress) was applied in the meantime. Thank you.
There’s a ready-made version of this conversation, with follow-up questions and what a good answer looks like, in is my WordPress host patched?
On Plesk instead?
Plesk is the other common shared-hosting panel, and the shape is identical. You change the per-site version under Websites & Domains › PHP (choose the PHP handler and version there), and the server-level patching is still the host’s job. Plesk released fixed “PHP for Linux” builds: PHP 8.2–8.5 at the fixed upstream versions, and patched 7.4, 8.0 and 8.1 builds that keep the same version number with a 21 October 2026 build date. As the Plesk admin you install them from Tools & Settings › Updates; as a customer, send the same email. The version-number trap is sharper on Plesk precisely because the old branches don’t change their number when patched — check the build date, not just the version.
Stop babysitting PHP upgrades
PHP upgrades never stop. A new version lands every year, each one supported for about four, and every few years a runtime bug like PHP2Shell forces an unscheduled scramble through MultiPHP Manager. On shared hosting you’re always dependent on how fast your host patches the ea-php packages underneath you — and you only find out how fast that is during an emergency.
There’s a more structural way out: don’t run PHP at all. Presscomet keeps the WordPress admin, the block editor, your URLs, feeds and REST API, but runs on Node.js with no PHP runtime — so PHP2Shell and the whole class of PHP-runtime bugs simply don’t apply, and there’s no PHP version to track in a panel. It is not “unhackable”: it has its own software to keep updated (Node.js, its libraries and the server it runs on) and its own login to protect. And because it doesn’t execute PHP, your old PHP plugins don’t run — the common jobs (SEO, forms, SMTP, redirects, caching, custom fields) are built in instead, and WooCommerce stores aren’t supported. Read can you run WordPress without PHP? before deciding whether it fits.
If it does, the migration only reads your existing site and lists what would move over — it never changes anything on your cPanel account — so trying it costs you nothing.
Sources
Facts checked against these sources on October 24, 2026. Things change quickly; the vendor advisory always wins.
- [1]PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 security releases — PHP.net
- [2]Supported versions — PHP.net
- [3]Server requirements (PHP 8.3+ recommended) — WordPress.org
- [4]PHP2Shell fixes by distro, control panel and PHP version — Digital Applied
- [5]PHP2Shell and WordPress — Meow Apps
- [6]Two critical PHP flaws: find, mitigate and patch PHP2Shell — Qualys
- [7]Hostinger: protecting against PHP2Shell (cPanel rollout) — Hostinger
Frequently asked questions
How do I change my PHP version in cPanel?
In cPanel, open Select PHP Version (on CloudLinux hosts) or MultiPHP Manager, find your domain, choose the version you want — PHP 8.3 or 8.4 is the safe default for WordPress — and click Apply. The change usually takes effect within a minute. Confirm it in wp-admin under Tools › Site Health › Info › Server.
What is the difference between Select PHP Version and MultiPHP Manager?
Both set the PHP version per domain. MultiPHP Manager is the standard cPanel tool that switches between the EasyApache ea-php builds the host installed. Select PHP Version is the CloudLinux PHP Selector; it does the same job and also lets you turn individual PHP extensions on and off. Hosts usually show one or the other.
Does changing the PHP version in cPanel fix PHP2Shell?
Only if the build you switch to is patched. Selecting a version in cPanel just picks among the ea-php packages the host already installed. PHP2Shell is fixed by the host updating those packages (ea-php82–85 at 8.2.35/8.3.36/8.4.27/8.5.12, plus backported ea-php74/80/81). If the host has not updated them, every version in the dropdown is still vulnerable. Ask them to confirm.
Which PHP version should I choose in cPanel for WordPress?
PHP 8.3 (ea-php83) or 8.4 (ea-php84). WordPress.org recommends 8.3 or newer. Avoid PHP 8.1 and older: those branches are past upstream end of life and only safe if your host backports fixes. PHP 8.2 works but stops getting security fixes on 31 December 2026.
Will changing the PHP version break my WordPress site?
It can if a plugin or theme uses code that newer PHP removed. That is why you update plugins and themes first, test on a staging copy, and keep the previous version one click away in MultiPHP Manager so you can switch back in under a minute.
Why does cPanel show a different PHP version than Site Health?
cPanel shows the branch assigned to the domain (for example ea-php83); Site Health shows the exact version and build actually serving requests. If they disagree, PHP may not have restarted, or the change applied to a different domain or subdomain. Site Health is the one to trust.
Presscomet keeps your wp-admin, editor, URLs and content, and serves pages without PHP or MySQL. Check your site for free, then migrate in one click — your old site is only ever read.
Keep reading
- SecurityPHP2Shell and WordPress: are you affected, and how do you fix it?
Two critical bugs in PHP itself put almost every WordPress site on an affected runtime until the host patches it. Here’s what happened in plain English, a checker that tells you whether you’re affected, and step-by-step fixes for every kind of hosting.
- SecurityHow to check and update your PHP version in WordPress (2026)
Your PHP version decides whether your WordPress site still gets security fixes. Here’s how to find it in under a minute, what’s still supported, and a safe way to upgrade without breaking anything.
- HostingIs your WordPress host patched for PHP2Shell? What to ask (with an email template)
On most WordPress sites you can’t patch PHP yourself — your host has to. Here’s who is responsible on each kind of hosting, the four questions that get you a real answer, and a ready-to-send email.