What you need before the installer runs
On a fresh AlmaLinux 8 or 9 VPS with root SSH, set a hostname that resolves to the server IP, install curl, then run curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest from /home. Wait 15 to 45 minutes, then open https://server-ip:2087 and activate the licence.
| Requirement | What it means in practice |
|---|---|
| Operating system | A clean AlmaLinux 8 or 9, or Rocky Linux 8 or 9. No panel, web server or database already installed. |
| RAM | 2 GB to run the panel, 4 GB or more once two or three sites are live. |
| Disk | 40 GB is a sane floor once backups, mail and logs are counted. |
| Access | Root over SSH. Sudo is not enough for the installer. |
| Hostname | A name like server1.yourdomain.com that resolves to this server's IP. |
| Licence | cPanel is paid software. The install completes without one, but WHM stays locked until it activates. |
cPanel takes over Apache, PHP, MySQL, DNS and mail on the machine, which is why it wants a fresh OS. It also cannot be uninstalled cleanly, so a VPS that already runs a site is the wrong host for this.
Step 1: prepare the operating system
Log in as root and do the boring parts first. Each of these prevents a failure later.
- Update the OS: yum update -y, then reboot if the kernel changed.
- Set the hostname: hostnamectl set-hostname server1.yourdomain.com
- Add the server IP and that hostname to /etc/hosts, so the name resolves locally even before public DNS exists.
- Create the public A record for the hostname at your DNS provider, pointing at the server IP. The licence check uses it.
- Stop and disable NetworkManager: systemctl stop NetworkManager, then systemctl disable NetworkManager. It fights cPanel's own network configuration.
- Check that /tmp is not mounted noexec. If it is, remount it without that flag, or the installer cannot run its own scripts.
You are ready when hostname -f prints the full name and ping of that name answers from the server itself. If it does not, fix DNS or /etc/hosts before you continue; a wrong hostname is the most common reason a licence later shows as invalid.
Step 2: run the installation script
Two commands do the work. Run them in a screen or tmux session if your SSH connection is unreliable, because interrupting the installer leaves a half-configured server.
- Install curl if it is missing: yum install curl -y
- Move to the home directory: cd /home
- Download and run the installer: curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest
- Leave the session open. The script downloads packages and configures services for 15 to 45 minutes depending on disk and network speed.
It worked when the output ends with a message that the installation is complete and prints the WHM address. You can also confirm the version later with cat /usr/local/cpanel/version. If the script stops with an error, read the log path it prints rather than running it again; a repeat run on a partial install usually makes the mess worse.
Step 3: finish the setup in WHM
WHM is the server-side panel at port 2087; cPanel at 2083 is what your customers see. Both use a self-signed certificate at first, so the browser warning is expected.
- Open https://server-ip:2087 and accept the certificate warning.
- Log in as root. Accept the licence agreement; if a licence is already tied to this IP it activates here.
- Set the contact email to a mailbox you actually read. Service alerts and security notices go there.
- Confirm the networking details WHM detected, then set the nameservers, for example ns1 and ns2 on your own domain.
- At the registrar, create those nameserver records pointing at the server IP, or hosted domains will not resolve.
The server is usable when WHM loads without a licence warning and the hostname in the header matches the FQDN you set. Then create a test account and open its cPanel on port 2083 before you sell anything.
Step 4: secure it before the first website
A default cPanel install is functional, not hardened. Four settings take an hour and remove most of the risk.
- Updates — WHM, Update Preferences, set the release tier to RELEASE and enable automatic updates.
- Brute force — enable cPHulk Brute Force Protection, which blocks IPs that keep guessing passwords.
- Firewall — install CSF from WHM's plugin section and open only the ports you use: 22, 80, 443, 2083, 2087 and mail.
- SSH — move off port 22 and switch to key authentication, then disable password logins in sshd_config.
Turn on backups in the same session, with the destination set to remote storage rather than the same disk. A backup beside the site it protects disappears with the disk.
Step 5: create a package, then an account
WHM will not create a hosting account without a package, because the package carries the limits.
- Packages, Add a Package: name it, set disk quota and bandwidth, and save.
- Account Functions, Create a New Account: enter the domain, a username and a strong password, pick the package.
- Open the new account's cPanel at https://server-ip:2083 with those credentials.
- Upload an index file and open the domain in a browser. If it shows the default page, DNS has not pointed at this server yet.
Avoid "unlimited" on a VPS you also use for other things. One runaway backup can fill the disk and take every account down with it.
When it goes wrong: the five usual failures
Most failed installs come down to one of these. Match the symptom before you change anything.
| Symptom | Cause and fix |
|---|---|
| Installer refuses the OS | Debian, an end-of-life CentOS, or a custom image. Reinstall with AlmaLinux 8 or 9. |
| WHM shows an invalid licence | The hostname does not resolve to this IP, or the licence is for another IP. Fix DNS, then run /usr/local/cpanel/cpkeyclt. |
| Install stops partway | Usually RAM exhaustion or a full disk. Check free -m and df -h, then rebuild rather than resuming. |
| Installer fails on /tmp | /tmp is mounted noexec. Remount without that flag and re-run. |
| WHM unreachable after install | The provider firewall blocks 2087. Open it in the provider panel, not only in CSF. |
What the licence costs, and when to skip all this
cPanel itself is licensed per server, monthly, and the price depends on the account count and where you buy it. No figure on this page is quoted for a licence; email support@webji.services with the server spec and the number of accounts and you get an INR figure before payment.
If the goal is one or two websites rather than a hosting business, a cPanel hosting plan or a VPS with the panel preinstalled is cheaper than a licence plus the hours. The Linux hosting plans include cPanel from ₹300 a month, before 18% GST, with no licence to buy.
Support here answers by email 24/7 in Hindi and English, with an average first reply under 60 minutes, and can quote the licence and the server together if you want both from one invoice.
Frequently Asked Questions
Can I install cPanel on my own VPS?
Yes, if you have root SSH on a fresh supported OS. Install curl, run the installer from /home, then finish the licence and nameservers in WHM on port 2087. You need a paid licence before WHM unlocks.
How much RAM does cPanel need?
Two gigabytes is the working minimum for the panel itself, and four gigabytes or more once you host two or three sites with mail and backups. Below 2 GB the installer can fail and services get killed under load.
Which OS should I use for cPanel?
AlmaLinux 8 or 9, or Rocky Linux 8 or 9, on a clean image. Recent Ubuntu LTS releases are also supported but are newer to the platform. Debian, Windows and end-of-life CentOS are not options.
How long does the installation take?
Fifteen to forty-five minutes on a normal VPS, depending on disk speed and network. Do not close the SSH session or reboot partway through, or you will rebuild the server.
Can I install cPanel on Ubuntu?
Recent Ubuntu LTS images are supported, but AlmaLinux and Rocky Linux are the safer default because more of the documentation and third-party tooling assumes them. If the control panel is the point, choose the OS the panel was built around.
Why is cPanel not free?
The panel is commercial software licensed per server, monthly, with the price tied to account count. The install script is free to run, but WHM stays locked until a licence activates for that IP.

