In this tutorial, I'm going to show you how to set up and install a bare bones WHM/cPanel admin interface on CentOS. The same instructions will probably work on any standard Linux installation. There are a lot of additional things that go into setting up WHM/cPanel such as nameservers and FTP servers, but I won't go into any of them right now. They can all be configured after the initial set up anyway. So I'm only going to focus on setting everything up and get to the admin interface.
Here is a list of things you need to run WHM/cPanel:
- 1GB RAM (2 recommended)
- Disk 20 GB (40GB Recommended)
- 226 MHz CPU
So when creating your server, make sure you have at least this much RAM and CPU.
To install WHM/cPanel, you need to have either a full or a trial license. You can request a trial license from here: https://cpanel.com/trial/. The trial lasts for 15 days it's $45 per month for a dedicated license and $20 per month for a VPS.
It's important to note that you can't use a trial license from any domain name or IP address that has previous history with cPanel. This means that there's a good chance you won't be able to get a trial license for your new server IP since it might have already been used once before. You can test the cPanel history of your server IP address on this page: https://verify.cpanel.net/index.cgi .
Also note, that you need a fully qualified domain name attached to your IP address. You can't use just an IP address as your hostname. You can, but it'll only take you so far until WHM issues you a warning and prevents you from going any further.
Disable Firewalls and NetworkManager
If you're using a firewall like CSF, disable it. For CSF, the command is:
And to stop the NetworkManager that might be running by default, use this command:
systemctl stop NetworkManager
So with these requirements out of the way, let's see how to install a bare bones WHM/cPanel configuration on Linux.
On your Linux installation, run the following commands:
cd /home wget https://securedownloads.cpanel.net/latest sh latest
This switches the directory to /home, downloads the installation script and commences the installation. Keep in mind that this can last a long time - around 40 minutes or so, so sit back and relax. There's a lot of stuff happening in the background!
Once the installation is complete, you will get instructions on how to access the GUI.
We need to do this to complete the final steps of the WHM install. Here's what you have to do:
- Visit your domain name that you registered using the port "2087". So if your domain name is "example.com", visit "example.com:2087"
- Login to the resulting web page as root with your root username as shown below:
Confirm Hostname and DNS Resolvers
Once you log in, you'll be asked to configure a series of steps. First, we need to confirm the username and primary DNS resolvers. By default, the hostname is the same as your domain name and the two DNS resolvers are simply the public DNS servers maintained by Google. They're pretty reliable and you can leave them as the defaults.
Skip IP Address Set up
You'll probably want to configure this later when you start adding sites to WHM, but for now I just want to proceed with a bare bones installation. So skip this step.
Disable Nameservers for Now
Similarly, you can skip the step of setting up your nameservers. This is actually quite a complicated mechanism and requires you to have a couple of IP addresses (preferably in separate geographic locations) and set up DNS records with your domain provider. But at this stage, we just skip it and disable nameservers entirely.
Same as above. We can configure FTP later and choose which program we want to use. But for now, just let it go:
Set Disk Quotas and We're Done!
Finally, we can set up disk quotas later when we want to track disk usage for various accounts. For now, we just ignore file system quotas and complete the installation by finishing the set up.
That's it! You've now installed a (very) bare bones WHM/cPanel configuration on your Linux server. There's a lot more to it obviously. We've skipped half the steps relating to nameservers. But for now, this will get your started and you can start playing around and exploring the interface!