Overview
cPanel and WHM receive regular updates that patch security vulnerabilities, fix bugs, and add new features. A WHM update also pulls in updates to bundled software like PHP (via EasyApache), Mail, DNS, and the cPanel API. Falling behind on updates — even by a few weeks — leaves your server exposed to known exploits.
Most shared hosting customers don’t need to worry about this; Host & Tech handles updates automatically on managed plans. But if you’re running a VPS or dedicated server with root WHM access, keeping cPanel current is your responsibility. This article covers both methods: the WHM web interface and the command line.
You’ll also find a troubleshooting section for the errors that actually come up in real-world updates — not just the ones cPanel’s own documentation covers.
Prerequisites
- Root or reseller-level WHM access
- A licensed cPanel installation (updates won’t run on an unlicensed server)
- SSH access if you plan to use the CLI method
- A recent backup of all accounts — this is non-negotiable before any major update
- At least 1 GB of free disk space on
/usrand/tmp - A maintenance window if this is a production server — updates can cause 2–5 minutes of service interruption
Understanding cPanel Update Tiers
Before you update anything, you need to know which update tier your server is on. cPanel uses four tiers:
- RELEASE — The recommended tier for production servers. Stable, well-tested builds.
- CURRENT — Slightly ahead of RELEASE. Gets new features faster but with marginally more risk.
- EDGE — Bleeding edge. Not suitable for production.
- STABLE — Deprecated. If you’re still on this, move to RELEASE.
I’d recommend RELEASE for anything hosting real customers or business-critical sites. CURRENT is fine for a dev or staging VPS where you want to test new features early.
📝 Note: You can check and change your update tier in WHM under Server Configuration > Update Preferences.
Method 1: Update cPanel and WHM via the WHM Interface
-
Log in to WHM at
https://yourserver.example.com:2087using your root credentials. - In the left sidebar, use the search bar and type Upgrade to Latest Version, then click the result under the cPanel section.
- You’ll land on a page that shows your current cPanel version and any available updates. Click Click to Upgrade.
- The upgrade runs in your browser window. You’ll see a live log output. Don’t close this tab — if you do, the update continues in the background, but you lose the ability to monitor it.
-
Wait for the process to complete. You’ll see
Doneat the bottom of the output. This typically takes 3–10 minutes depending on your server and the size of the update. - After the update finishes, WHM may prompt you to log back in. Do so and verify the new version under Server Configuration > Server Information.
Method 2: Update cPanel and WHM via SSH (Recommended for Sysadmins)
The CLI method gives you more control, better logging, and doesn’t depend on your browser staying connected. For any server with active customer accounts, I’d use this approach.
-
SSH into your server as root:
Copied to clipboard
ssh root@yourserver.example.com -
Run the cPanel update script:
Copied to clipboard
/scripts/upcpThis is the official cPanel update script. It handles everything: pulling the latest build for your tier, updating cPanel, WHM, and all bundled services.
-
To force an update even if cPanel thinks you’re already current, add the
--forceflag:Copied to clipboard/scripts/upcp --force⚠ Warning: Only use
--forceif you have a specific reason — for example, a known bug fix was pushed and the standard update check isn’t picking it up. Running forced updates routinely isn’t a good habit. -
To run the update in the background (useful for long sessions):
Copied to clipboard
nohup /scripts/upcp > /var/log/cpanel-update.log 2>&1 &This lets the update continue even if your SSH session drops. Tail the log to monitor it:
Copied to clipboardtail -f /var/log/cpanel-update.log -
Verify the installed version after the update completes:
Copied to clipboard
cat /usr/local/cpanel/version
📝 Note: cPanel also runs automatic nightly updates by default. If you’ve disabled these (some sysadmins do on high-traffic servers to control the timing), /scripts/upcp is how you apply updates manually.
Configuring Automatic Update Preferences
If you want to control how and when cPanel updates run automatically, go to WHM > Server Configuration > Update Preferences.
Here you can set:
- Automatic updates — on or off
- Update tier — RELEASE, CURRENT, or EDGE
- Update notification email — I’d always keep this enabled so you get an email if an update fails silently
You can also manage these settings from the command line by editing /etc/cpupdate.conf. A typical production config looks like this:
CPANEL=RELEASE
ROUTERS=RELEASE
THIRDPARTY=RELEASE
RPMUP=automatic
MAILTO=admin@yourdomain.com
If you’re managing multiple reseller accounts or WHM environments, it’s worth reading up on how Reseller Hosting at Host & Tech handles update responsibilities across accounts — it’s a common question when clients move from shared to reseller.
Common Issues & Troubleshooting
Update fails with “/scripts/upcp: Permission denied”
This happens when the script isn’t executable, usually after a partial update or a filesystem issue. Fix it with:
chmod +x /scripts/upcp
/scripts/upcp
If the file is missing entirely, your cPanel installation may be corrupted. Contact your host’s support team before doing anything else.
Update stalls or hangs indefinitely
This is more common than cPanel’s docs suggest. It’s usually caused by a stale lock file from a previous failed update. Check for it and remove it:
ls -la /var/cpanel/updatenow.lock
rm -f /var/cpanel/updatenow.lock
/scripts/upcp
⚠ Warning: Only remove the lock file if you’re certain no other update process is actively running. Check with ps aux | grep upcp first.
“Your cPanel license is invalid or expired” during update
The update script validates your license before pulling any files. If the license check fails, the update stops immediately. Run the license update tool manually:
/usr/local/cpanel/cpkeyclt
If that returns an error, log into your hosting control panel and verify the license is active for this server’s IP address. A server IP change (common after a migration) is the most frequent cause.
Update completes but cPanel version hasn’t changed
You’re probably already on the latest build for your tier. Check the update log to confirm:
cat /var/cpanel/updatelogs/update.$(date +%Y-%m-%d).log
Look for a line like System is up to date. If you need a specific newer version, check whether your current tier (RELEASE vs CURRENT) has it. You may need to switch tiers temporarily.
Services restart unexpectedly during update and don’t come back
cPanel restarts Apache, MySQL, and other services as part of its update cycle. Occasionally one doesn’t restart cleanly. Check service status immediately after:
whmapi1 servicestatus
# Or check individual services:
systemctl status httpd
systemctl status mysql
systemctl status named
If a service is down, restart it manually and then check /var/log/messages or the service’s own error log for the root cause.
FAQ
Frequently Asked Questions
How do I check my current cPanel version in WHM?
Go to WHM > Server Configuration > Server Information. Your cPanel version is listed at the top of that page. From the command line, run cat /usr/local/cpanel/version for a quick check without loading the UI.
Will updating cPanel take my websites offline?
Briefly, yes. Most cPanel updates restart Apache, MySQL, and other services during the process. In practice this is usually 1–3 minutes of downtime per service restart. For high-traffic production servers, schedule updates during off-peak hours and notify customers in advance.
Can I roll back a cPanel update if something breaks?
No — cPanel doesn’t support rollbacks. Once an update runs, you can’t undo it through any built-in tool. This is exactly why taking a full server backup before updating is essential, not optional. If you’re on a Host & Tech dedicated server with snapshot support, take one before running the update.
How often does cPanel release updates?
cPanel typically releases builds every few weeks on the RELEASE tier. Security patches can drop more urgently and outside the normal cycle. Keeping automatic updates enabled is the easiest way to stay current without having to check manually.
Why does WHM show a different version than what /scripts/upcp installed?
WHM caches version information and sometimes displays a stale value until you refresh or log out and back in. Clear your browser cache and reload WHM. If the mismatch persists, run cat /usr/local/cpanel/version from SSH — that value is always authoritative.