How to Update WHM and cPanel (The Right Way)

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 /usr and /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

  1. Log in to WHM at https://yourserver.example.com:2087 using your root credentials.
  2. In the left sidebar, use the search bar and type Upgrade to Latest Version, then click the result under the cPanel section.
  3. You’ll land on a page that shows your current cPanel version and any available updates. Click Click to Upgrade.
  4. 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.
  5. Wait for the process to complete. You’ll see Done at the bottom of the output. This typically takes 3–10 minutes depending on your server and the size of the update.
  6. 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.

  1. SSH into your server as root:

    ssh root@yourserver.example.com
  2. Run the cPanel update script:

    /scripts/upcp

    This is the official cPanel update script. It handles everything: pulling the latest build for your tier, updating cPanel, WHM, and all bundled services.

  3. To force an update even if cPanel thinks you’re already current, add the --force flag:

    /scripts/upcp --force

    ⚠ Warning: Only use --force if 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.

  4. To run the update in the background (useful for long sessions):

    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:

    tail -f /var/log/cpanel-update.log
  5. Verify the installed version after the update completes:

    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.

SHARE THIS ARTICLE

Need help with your hosting?

Host & Tech provides 24/7 support for all VPS, dedicated, and shared hosting customers.

Scroll to Top