Steps to install WHM and cPanel on Ubuntu 20.04 LTS

When Red Hot Linux decided to stop centos support and launch centos stream, The cPanel also decided not to give support to centos stream and also announced to collaborate with WHM/cPanel for Ubuntu OS.

Now they offer WHM/cPanel for Ubuntu OS for Ubuntu 20.04 LTS.

Minimum system requirements for Ubuntu installation

Here we give you the minimum requirements

1-Host Name

First we need Hostname name which should fully qualified domain name and not more then 60 character

2- Static Ip Address

A static IP is required And it should be resolved on static Ip address

3- Turn off Firewalls

You should disabled firewall or allow required ports for installation with this command you can disable

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

Hardware requirements:

RequirementOSProcessorRamHard DiskArchitecture
MinimumUbuntu 20.04 LTS 1.1 GHz1 GB40 GB64-bit
RecommendUbuntu 20.04 LTS 2.0 GHz4 GB40 GB64-bit

If you want to install antivirus on Ubuntu versions then ram should be 3 GB. You can install cPanel & WHM on Ubuntu 20.04 LTS (Focal Fossa) as well. You can check more details on cPanel installation guideline.


We recommend that you use the minimal installer. Do not install SELinux on your server. SELinux is not compatible with cPanel & WHM.

Steps to install WHM and cPanel on Ubuntu 20.04 LT

Step to install to Ubuntu 20.04 LTS Linux:

  1. Install on Server or the VM or VPS

Ubuntu can be install on server as well as VM Instances or VPS.

  1. Install cPanel

To install cPanel & WHM on your server, run the following command:

cd /home && curl -o latest -L && sh latest

  1. Setup Email in WHM

After installing

  1. Activate cPanel

Common cPanel Script

  • Add a DNS zone – adddns
  • Add a POP account – addpop
  • Add JSP support to a domain (requires Tomcat) – addservlets 
  • Add an user to the system – adduser 
  • Calculates memory limits for Apache processes then adds to httpd.conf – apachelimits
  • Looks for logs nearing 2 Gigabytes in size – biglogcheck
  • Installs Crypto on FreeBSD – bsdcryptoinstall
  • Configures the proper lib directories in FreeBSD – bsdldconfig
  • Tests the connection speed for downloading FreeBSD packages – bsdpkgpingtest
  • Install expect on FreeBSD – buildbsdexpect
  • Rebuilds exim.conf – buildeximconf
  • Installs postgresql on FreeBSD – buildpostgrebsd-dev 
  • Change cPanel passwords (does not change all passwords) – chpass
  • Removes domains from named.conf that do not have a Zone – cleandns
  • Used to update/reinstall Courier – courierup
  • To backup accounts (if backups enabled) (–force) – cpbackup
  • Used to synchronize DNS zones with clustered servers (–help) – dnscluster
  • Displays contents of .datastore storable files – dumpstor
  • Displays contents of .gdbm locale files – dumpgdbm
  • Recompile/Upgrade Apache and/or PHP – easyapache
  • Used to manually set a users quota limit – editquota
  • Ensures users includes are added in httpd.conf – ensure_vhost_includes
  • Fixes Mailbox permissions, Mailman, CGI scripts, ndc and quotas – fixcommonproblems
  • Fixes common Mailman issues – fixmailman
  • Fixes NDC errors with named – fixndc 
  • Fixes quota problems – fixquotas
  • Resets Horde database to a fresh one. All previous user data is lost. – fullhordereset
  • Used to Update/Install FTP server (Pure-FTPD or ProFTPD) to latest version – ftpup
  • Initializes quotas – initquotas
  • Installs Zend Optimizer (through phpextensionmgr) – installzendopt
  • Terminate an account – killacct
  • Removes a DNS Zone – killdns
  • Fixes permission problems with mail directories – mailperm
  • Rebuilds internal PHP from /var/cpanel/easy/apache/profile/makecpphp.profile.yaml – makecpphp 
  • To park a domain (only adds DNS) – park
  • Used to create an account backup – pkgacct
  • Used to update PHP only – phpup
  • Installs IonCube, Zend Optimizer, SuHosin & eAccelerator – phpextensiomgr
  • Similar to chpass, changes password only – realchpass
  • chowns /var/cpanel/users files – rebuildcpusers
  • Rebuilds /etc/named.conf with zones from /var/named/*.db – rebuildnamedconf
  • Restart script for services – restartsrv $servicename
  • Restores an account from a backup/pkgacct file (must be in /home) – restorepkg
  • Update logs of all users – runlogsnow
  • Update stats for a particular user – runweblogs
  • Secures /tmp partition with options nosuexec and nosuid – securetmp
  • Sets which FTP server to install (Pure-FTPD or ProFTPD) – setupftpserver
  • Sets which mail service to install (Courier or Dovecot) – setupmailserver
  • Sets which DNS service to install (Bind or NSD) – setupnameserver
  • Suspends an account – suspendacct
  • Unsuspends a suspended account – unsuspendacct
  • Updates cPanel to the latest version (–force) – upcp
  • Updates the cPanel scripts – updatenow
  • Updates /etc/userdomains entries from /var/cpanel/users – updateuserdomains
  • To create new accounts – wwwacct
  1. cPanel/WHM & Config files
  2. Common cPanel scripts