Most cPanel installs that fail do so before the installer has really started. The command itself is one line; the work is in giving it a server it is willing to run on. This is the checklist we use, written for developers who are comfortable with SSH but have not set up cPanel & WHM from scratch before. Everything about requirements comes from cPanel's own documentation as it stood in November 2026, so check it again if you are reading this much later.

First, decide whether you need it at all

cPanel on your own VPS makes sense when you are hosting several sites, for yourself or for clients, and you want the WHM side: creating accounts, setting limits, handing each client their own login. It does not make much sense for one website.

The arithmetic is simple. You pay for the VPS, and on top of that you pay cPanel for a licence every month, priced by the number of accounts. Even the single-account tier costs more per month than most shared cPanel hosting plans, which already include the licence and someone else patching the server. If you have one WordPress site and no wish to be root, shared cPanel hosting is cheaper and less work. Install cPanel on a VPS when you have outgrown that, not before.

Pick a supported operating system

cPanel is narrow about distributions. As of November 2026 the documentation lists:

OS Versions Notes
AlmaLinux OS 8 (cPanel 110+), 9 (114+), 10 (132+) The default choice for most people
Ubuntu 24.04 LTS only PowerDNS is the only supported nameserver; AppArmor can stay on
CloudLinux 7, 8, 9, 10 10 needs cPanel 134+; 7 cannot take cPanel 112 or later and is not recommended
Rocky Linux none for new installs cPanel now says you can no longer install on Rocky Linux

Debian is not on the list, and neither is any Ubuntu release other than 24.04. The Rocky Linux change catches people out because older tutorials still recommend it. If you have no reason to prefer otherwise, take AlmaLinux 9 or 10.

One quirk: if the server's IP address already has an active CloudLinux licence, the installer converts AlmaLinux to CloudLinux. Add --skip-cloudlinux to the install command to prevent that.

Hardware: minimum and what to actually buy

From the AlmaLinux and Ubuntu requirement pages:

  • CPU: 64-bit, 1.1 GHz minimum (Ubuntu page recommends 2 GHz). ARM is not supported.
  • RAM: 2 GB minimum, 4 GB recommended. If you plan to run ClamAV, cPanel strongly recommends at least 3 GB. Below the minimum, the installer refuses to continue.
  • Disk: 20 GB minimum, 40 GB recommended, plus at least 5 GB free in /usr/local/cpanel for installs and upgrades.
  • File system: XFS or ext4. On a single partition, at least 1,000,000 inodes, plus 50,000 per cPanel account.
  • Network: a static, public IPv4 address. IPv6-only servers are not supported, DHCP-assigned addresses are not allowed, and cPanel only licenses publicly visible static IPs with working DNS. Behind NAT, you need 1:1 NAT with NAT loopback.

In practice, 2 GB is enough to finish the install and not much more. Start at 4 GB and 40 GB if real sites and mail will live on the box.

Start from a fresh OS

This is the rule people most want to skip, and it is not optional. cPanel's installation guide says to install only on a freshly installed operating system, and warns that services installed before or during the install cause compatibility problems. That means no Apache, Nginx, MySQL, Postfix or Docker stack you set up "just to test". The installer brings its own web, mail, DNS and database services.

There is also no uninstaller. cPanel's documentation says removing it means reformatting the server. So if the VPS has history, back up what you need and reinstall the image.

Set a proper hostname

The hostname must be a fully qualified domain name on a domain you have registered, must not be the same as any domain you will host on the server, can be at most 60 characters, and must resolve to the server's IP. Use a subdomain, not the bare domain.

Create the A record (and AAAA if you use IPv6) first, then:

hostnamectl set-hostname host1.example.com hostname -f dig +short host1.example.com 

The last command should print your server's public IP.

Prepare the OS: firewall and SELinux

The installer tries to open the ports it needs, but cPanel recommends disabling the OS firewall before installing and adding a third-party firewall afterwards.

On AlmaLinux or CloudLinux:

iptables-save > ~/firewall.rules systemctl stop firewalld.service systemctl disable firewalld.service # cPanel says disable SELinux; permissive can work but is not recommended sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config reboot # after the reboot sestatus 

On Ubuntu 24.04:

iptables-save > ~/firewall.rules systemctl stop ufw.service systemctl disable ufw.service 

On AlmaLinux 8 the installer switches off NetworkManager itself; from AlmaLinux 9 onwards that is not needed. Perl has to be present, but the installer tries to add it if it is missing.

Run the installer

Log in as root, not a sudo user, and run the official command:

cd /home && curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest 

To keep AlmaLinux from being converted to CloudLinux:

cd /home && curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest --skip-cloudlinux 

Run it inside tmux or screen so a dropped SSH session does not kill it halfway. cPanel's guide for its DigitalOcean image quotes about 10 to 15 minutes; the main installation guide gives no figure, and on a plain VPS it depends on CPU, disk and download speed. Leave it alone until it prints its final message.

First login to WHM

Open https://<server-ip>:2087 in a browser. Expect a certificate warning on first visit, because the server is still using a self-signed certificate. Log in as root with the root password, then:

  1. Accept the legal agreements.
  2. Activate a licence. A new installation can get a free 15-day trial, which needs a cPanel Store account with a verified email address.
  3. Enter a contact email for server alerts and two nameservers. cPanel notes you cannot create accounts until nameservers are set.

You land on WHM Home, where you create a cPanel account per site.

Licensing, briefly

The installer is free; running cPanel past the trial is not. Each server needs its own paid licence, billed monthly (Solo, Admin and Pro can also be paid yearly), and the tier depends on how many accounts the server holds: Solo (1), Admin (up to 5), Pro (up to 30) and Premier (up to 100, with paid extra accounts). We are not quoting prices on purpose: cPanel's pricing page says prices change for new orders and all renewals from 16 December 2026, so check cpanel.net before you budget.

Firewall ports to open afterwards

Once WHM is up, put a firewall back. cPanel's docs name APF and CSF, and warn that neither works alongside firewalld. CSF's original developer, ConfigServer, shut down in August 2025; cPanel now maintains a fork of it for cPanel & WHM servers. The ports most setups need are:

22 SSH 80, 443 HTTP / HTTPS 2083 cPanel (SSL) 2087 WHM (SSL) 2096 Webmail (SSL) 25, 465, 587 SMTP 110, 143, 993, 995 POP3 / IMAP 53 (TCP and UDP) DNS, if this server is a nameserver 

At least one of 2082, 2083, 2086, 2087 or 2096 must stay open for cPanel's licence callback to work, and the server must be able to reach cPanel's licence servers outbound. FTP (21) and remote MySQL (3306) only if you actually use them. We keep a fuller table with what each port does in our cPanel port numbers reference.

Why installs fail

The usual causes, most of which cPanel's docs warn about:

  • Too little RAM or an unsupported OS version (Debian, Ubuntu 22.04, Rocky Linux). The installer stops early.
  • Services already installed. Reinstall the OS; cleaning up rarely works.
  • Hostname problems: not an FQDN, same as a hosted domain, or no DNS record yet.
  • SELinux still enforcing. Check sestatus after the reboot.
  • Licence will not activate: a dynamic, internal or NAT address without 1:1 NAT, broken DNS, or every licence callback port blocked.
  • Running as a sudo user instead of logging in as root.
  • The SSH session dropped and took the installer with it. Use tmux.

If you are doing this on a Bigdomainhost VPS

Our KVM VPS plans come with a dedicated IPv4 address, root access and AlmaLinux 8, 9 and 10 and Ubuntu 24.04 images, so the OS part is covered. The 2 vCPU / 4 GB plan with 40 GB NVMe meets cPanel's recommended RAM and disk. Servers run in Mumbai (BOM-1) and Delhi NCR (DEL-1) data centres, and the out-of-band console in the control panel gets you back in if a firewall rule locks you out of SSH. If you would rather not do the steps above, cPanel can be pre-installed at order time, with the licence billed at cPanel's price. The longer version of this walkthrough, with a requirements table, is in our guide to installing cPanel on a VPS.

Disclosure: this post was drafted with AI assistance for the Bigdomainhost team and fact-checked against cPanel's documentation. We are an Indian hosting provider and sell the VPS plans mentioned above.