cPanel has only one problem: it is not open source, neither free.

But if you want to use it to manage your web server and even resell the web hosting service to your customer it is a great solution.

This is a tutorial for installing and making some essential configurations on the server, not a tutorial about how to use cPanel.

Note: cPanel originally only supported RedHat, CentOS, and CloudLinux OS but now it supports Ubuntu 20.04.


INSTALLING CPANEL & WHM ON CENTOS 8

Give it a mane in a form of an FQDN.

hostnamectl set-hostname cpanelserver.mydomain.com

Remember to add cpanelserver.mydomain.com and cpanelserver to /etc/hosts.

Install Perl, Curl, and download+execute the installation script:

yum install curl perl
curl -o latest -L https://securedownloads.cpanel.net/latest
sh latest

That is pretty much it!

Now go to your browser and access the following address using your root credentials from the Linux console.

https://1.2.3.4:2087

To be able to enable the 2FA on your server, issue the following command on the terminal:

touch /var/cpanel/enable_twofactor_ui && /usr/local/cpanel/whostmgr/docroot/themes/x/rebuildtmpl

Eventually, the default route will be lost, in case it happens issue the following command pointing to your gateway to restore the internet connectivity:

ip route add default via 192.168.0.1 dev eth0 metric 100

INSTALLING CPANEL DNS ONLY

The “DNS ONLY” license of cPanel is a free limited-feature cPanel & WHM server type.

curl -o latest-dnsonly -L https://securedownloads.cpanel.net/latest-dnsonly
sh latest-dnsonly

Now create a DNS cluster to synchronize the configuration from the Master to the DNS Only Slave.


CLUSTERING AND DNS CLUSTERING

ON THE SLAVE

Manage API Tokens > Generate Token.

Select: Everything

ON THE MASTER

Configuration Cluster > Create. Insert the IP of the Slave and the generated token.

DNS Cluster > Enable DNS Clustering.

Manage API Tokens > Generate Token.

Select: Everything

ON THE SLAVE

Configuration Cluster > Create. Insert the IP of the Master and the generated token.

DNS Cluster > Enable DNS Clustering.

ON THE MASTER

Manage API Tokens > Generate Token.

Select: Everything

ON THE SLAVE

DNS Cluster > Add a new server to the cluster > Configure. Insert the IP of the Master and the generated token.

Manage API Tokens > Generate Token.

Select: Everything

ON THE MASTER

DNS Cluster > Add a new server to the cluster > Configure. Insert the IP of the Slave and the generated token.


INSTALLING CPANEL & WHM ON UBUNTU 20.04

sudo apt update && sudo apt upgrade-y
sudo hostnamectl set-hostname cpanelserver.mydomain.com
sudo nano /etc/cpupdate.conf

Add the following:

CPANEL=98

Then switch to root and execute the installation:

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