How to Install cPanel/WHM on a VPS and Host Client Websites
For web hosting businesses, freelancers managing multiple client websites, or anyone who needs a GUI-based hosting control panel, cPanel/WHM is the industry standard. It provides a browser-based interface for managing hosting accounts, domains, email, databases, and files β without requiring clients to touch the command line.
This guide covers installing cPanel/WHM on a VPS, configuring it for multi-account web hosting, and the key settings to get production-ready hosting up and running quickly.
cPanel vs WHM: The Difference
| Panel | Who uses it | What it manages |
|---|---|---|
| WHM (Web Host Manager) | Server administrator (you) | Server-wide settings, account creation, server health |
| cPanel | End users / clients | Files, email, databases, domains for their account |
You access WHM as the server admin to create and manage hosting accounts. Each account gets its own cPanel login.
Requirements
- Clean Ubuntu 20.04 or AlmaLinux 8/9 VPS (cPanel works best on RHEL-family; Ubuntu support is newer)
- Minimum 2 GB RAM (4 GB+ recommended)
- 20 GB+ SSD storage
- A hostname with valid DNS pointing to your VPS IP
- cPanel license ($16β$45/month depending on account count)
π‘ VPS.DO Tip: cPanel requires a license. Purchase one at cpanel.net or use cPanel’s 15-day free trial. VPS.DO’s KVM VPS plans fully support cPanel installation. View VPS Plans β
Step 1: Prepare the Server
# Start with AlmaLinux 8 (recommended for cPanel)
# Install via VPS.DO SolusVM OS reinstall
# Set hostname (must be a resolvable FQDN)
sudo hostnamectl set-hostname server1.yourdomain.com
# Update system
sudo dnf update -y
# Disable SELinux (required by cPanel)
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# Disable NetworkManager (cPanel manages networking)
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
Step 2: Install cPanel/WHM
# Download and run the official cPanel installer
cd /home
curl -o latest -L https://securedownloads.cpanel.net/latest
sh latest
Installation takes 20β60 minutes depending on server speed. The installer handles all dependencies automatically.
Step 3: Initial WHM Setup
Once installation completes, access WHM at:
https://YOUR_VPS_IP:2087
Login with root and your root password. Complete the setup wizard:
- Server Contact β Set admin email for alerts
- Nameservers β Set up ns1.yourdomain.com and ns2.yourdomain.com (add A records in DNS)
- Services β Enable/disable FTP, mail, etc.
- IP Addresses β Configure which IPs to use for hosting
Step 4: Create a Hosting Package
In WHM β Packages β Add a Package. Define resource limits for each tier:
Package: Basic Hosting
- Disk Space: 5,000 MB
- Monthly Bandwidth: 50,000 MB
- Max Email Accounts: 10
- Max Databases: 5
- Max Subdomains: 10
- Max Parked Domains: 5
- Max Addon Domains: 2
Step 5: Create a Client Hosting Account
WHM β Create a New Account:
- Domain: clientdomain.com
- Username: clientuser (auto-generated)
- Password: Set a strong password
- Package: Basic Hosting
- Contact Email: client@email.com
Click Create. The client can now log in to cPanel at https://clientdomain.com:2083.
Step 6: Install WordPress for a Client (via cPanel)
cPanel includes Softaculous for one-click CMS installation. From the client’s cPanel:
- Softaculous Apps Installer β WordPress
- Configure: URL, admin username, site name
- Click Install β WordPress is live in under 2 minutes
Step 7: Configure SSL for Client Domains
WHM β Manage AutoSSL β enable AutoSSL for all accounts. This automatically issues and renews Let’s Encrypt certificates for every hosted domain.
Step 8: Set Up Email for Clients
Each cPanel account can create email addresses for their domain. Clients access:
- Webmail at
https://clientdomain.com/webmail - IMAP/SMTP settings in cPanel β Email Accounts
Key WHM Maintenance Tasks
Monitor server resources
# WHM β Server Status β Service Status
# WHM β System Information β Memory Usage
Run cPanel updates
/usr/local/cpanel/scripts/upcp --force
Backup configuration
WHM β Backup β Backup Configuration β configure automated backups to a remote FTP/SFTP server or S3 bucket. Set daily backups retained for 7 days.
Check mail queue
# View mail queue
/usr/sbin/exim -bp | head -50
# Clear frozen messages
/usr/sbin/exim -bp | grep frozen | awk '{print $3}' | xargs exim -Mrm
cPanel Resource Sizing Guide
| Hosting Accounts | RAM | CPU | Storage |
|---|---|---|---|
| 1β10 accounts | 4 GB | 2 vCPU | 100 GB SSD |
| 10β30 accounts | 8 GB | 4 vCPU | 300 GB SSD |
| 30β100 accounts | 16 GB | 8 vCPU | 500 GB+ SSD |
- πΊπΈ USA VPS β from $20/month (cPanel-ready KVM)
- π₯οΈ USA Dedicated Server β for large hosting operations
Final Thoughts
cPanel/WHM transforms a bare VPS into a full-featured web hosting platform in under an hour. It’s the industry-standard choice for reseller hosting, agency client management, and anyone who needs a reliable GUI-based hosting environment. Combined with VPS.DO’s KVM infrastructure, you get a rock-solid foundation for a professional hosting business.
Related articles: