cPanel is one of the most popular Commercial control panel for Linux web hosting, I have been working with cPanel for 2+ years to manage all Shared, Reseller and business hosting customers. It comes with cPanel and Web Host Manager, which makes web hosting easier for you. WHM provides you root level access to your server whereas cPanel provides user level access interface to manage their own web hosting account on the server.
Install cPanel & WHM in Linux
Features of cPanel
cPanel control panel is very versatile control panel for managing your hosting servers, It has lots of features which make Web hosting easier for you. Some of them are listed below:
Powerful GUI controls on your server with WHM.
Can perform tedious tasks like Backups, Migrations and restorations in a very easy and smooth manner.
Excellent DNS and mail server management for main server and as well as client account.
Can easily switch/enable/disable services for server.
Can configure SSL/TLS for all server services and client domains.
Easy integration with Phpmyadmin to provide a web based interface to manage your MySQL databases.
Feel free to Rebrand it.
Can be easily integrated with WHMCS to automate billing management.
Here In this article, We’ll be covering cPanel & WHM installation on RHEL/CentOS 6.5 and share some more useful information which will help you to manage cPanel & WHM.
A fresh and running VPS or dedicated CentOS 6.5 server.
A minimum of 384MB RAM.
A Minimum 20GB of free disk space required for cPanel installation.
A cPanel license.
Installation of cPanel in RHEL/CentOS 5/6
First insure that OS version on which your Linux box is running, To do so, please use following command.
[root@tecmint ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
If you don’t have the latest version, please update your OS to its latest version, In CentOS and RHEL, we can simply do it with yum package installer.
[root@server1 ~]# yum update
Once updates completes, and then check the latest OS version with same above command.
[root@server1 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
Once you’ve ensured the OS version, you don’t have to install any other dependency package cPanel auto installer script does all for you. We can download cPanel installer file with wget command under /home directory.
root@server1 [~]# cd /home
root@server1 [~]# wget -N http://httpupdate.cpanel.net/latest
--2013-12-18 21:59:23-- http://httpupdate.cPanel.net/latest
Resolving httpupdate.cPanel.net... 126.96.36.199, 188.8.131.52, 184.108.40.206, ...
Connecting to httpupdate.cPanel.net|220.127.116.11|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34087 (33K) [application/octet-stream]
Saving to: `latest'
100%[======================================>] 34,087 42.5K/s in 0.8s
2013-12-18 21:59:24 (42.5 KB/s) - `latest' saved [34087/34087]
In above output you can see that we have downloaded a file “latest” in our home directory.
Next, execute the auto installer script, but we strongly recommended to run cPanel auto installer script in screen mode if you are doing it with SSH because it takes 3-4+ hours to complete the installation depending on your server resources.
root@server1 [~]# sh latest
Verifying archive integrity... All good.
Uncompressing cPanel & WHM Installer..............
___| _ \ __ _ _ __ ___| |
/ __| |_) / _` | '_ \ / _ \ |
| (__| __/ (_| | | | | __/ |
\___|_| \__,_|_| |_|\___|_|
Installer Version v00029 r6849459174e3809f72de2bef81427a8a45399d66
Beginning main installation.
Now, you need to wait for the cPanel installer script to complete its installation.
What Auto Installer Script Does for You
cPanel heavily modifies your operating system and that is the reason that no cPanel Uninstalleravailable on the web so far, you need to reformat your server to remove cPanel completely from your server.
It checks for various packages to ensure that there will be no conflicts and it finds any package conflict, it uninstalls previous packages with yum and that’s why its recommended to install cPanel on a Fresh OS.
Downloads language and base files for installation.
Installs various Perl modules through CPAN and other required packages with yum.
Downloads and compiles PHP and Apache with various associated modules.
Once that script completes its installation, it will shows up that cPanel installation is complete. You may be asked to reboot the server after installation.
After that you need to complete the installation wizard from its web based interface and you can access WHM with the following URL.
cPanel will open up its web interface like similar to below.
Please login with user “root” and your password. There are some more clicks remaining to complete the cPanel installation. Agree End User License Agreement by clicking “I Agree?/Go to Step 2” button:
Accept cPanel Agreement
Please do provide the working email address and contact SMS address in the column of “Server Contact Email Address” and “Server contact SMS address” respectively because your cPanel sends all important alerts, notification to this EMail-id (Recommended). You can fill the rest details as well, if you have one.
cPanel Network Setup
Please provide a valid FQDN hostname and Resolver entries for your server in this Networkingsection, you can use Google resolvers in this section if you don’t have your ISP’s resolvers. Please see the image below.
If you have more than one IP attached with your NIC card and you want to set up a specific IP for your Server’s main IP, you can do that from here, to do so please choose the IP from the drop down and click on “Go to Setup 4”.
Setup IP Address
In the 4th setup wizard, you can select DNS server which you want to use. You can choose one of them according to their Advantages, disadvantages and your server resources. Please read the comparison carefully and select the DNS server. Please see the image below.
Setup Name Servers
In the same step, please write down Name Servers you want to use in format ofns1/ns2.example.com. Also, Add an A entry for your hostname and nameserver by selecting the check box, please see the image below.
Add Name Server
You can select and set up different services like FTP, Mail and Cphulk in the Step 5 of this web based wizard, please see the snapshots and description below.
You can select FTP server of your choice from this wizard, which you want to use for your server depending on their advantages, disadvantages and depending upon your ease and requirements.
In the same wizard, you can select your Mail server to be used for all your mailing activities in future. You can add MTAs like Exim with your cPanel in future.
Cphulk brute force protection detects and block false password attacks activities and block their IP for your server. You can enable/disable and configure it from this installation wizard. Please see the snapshot below.
Setup Cphulk Brute Force Protection
Last Step 6, allows you to enable quotas which helps you to track down the disk space usages.
Setup User Quotas
Please select “Use file system quotas” and click on “Finish setup wizard” to complete the Installation process. Once you are done with Installation, WHM’s home page will Appear like below..
cPanel Server Configuration
You can see that Home page of WHM is displaying all Control panel option and sidebar with search facility which allows you to search options by just typing their names.
Sometimes, cPanel installer script is not able to update the licence because of firewall or resolvers entries and you’ll see trial warning in the page. You can do it manually with following command.
root@server1 [~]# /usr/local/cpanel/cpkeyclt
As I told you above that Cpanel is for user level access and WHM is for root level access, you need to create an account with option available in WHM. Here I have created an account with the username “tecmint” to show you the view of cPanel for users. Please see the image below.
Other Useful thing to know before you start working with Cpanel and WHM.
CPanel Backend Files
Cpanel directory : /usr/local/cpanel
Third Party tools : /usr/local/cpanel/3rdparty/
Cpanel addons directory : /usr/local/cpanel/addons/
Base files like Phpmyadmin, skins : /usr/local/cpanel/base/
cPanel binaries : /usr/local/cpanel/bin/
CGI files : /usr/local/cpanel/cgi-sys/
Cpanel access & error log files : /usr/local/cpanel/logs/
Whm related files : /usr/local/cpanel/whostmgr/
Important conf files
Apache configuration file: /etc/httpd/conf/httpd.conf
Exim mail server conf file:/etc/exim.conf
Named conf file : /etc/named.conf
ProFTP and Pureftpd conf file :/etc/proftpd.conf and /etc/pure-ftpd.conf
Cpanel user file: /var/cpanel/users/username
Cpanel configuration file (Tweak settings) : /var/cpanel/cpanel.config
Networking configuration file: /etc/sysconfig/network
Addons, parked and subdomain information: /etc/userdomains