Install cPanel & WHM on AWS EC2 Instance with CentOS 7 and set up Email and Security using Web Host Manager (WHM). This latest version simplifies the WHM setup in just two clicks compared to the installation of old cPanel version.
cPanel is a server management software for website owners which comes with a 15-day trial.
Click here to activate cPanel License
ADVERTISEMENT
Steps to install cPanel and WHM
- Create an EC2 Instance
- Setup Route 53 DNS
- Configure Security Group
- Set up Hostname on AWS
- Install cPanel
- Agree to Terms and Conditions
- Setup Email in WHM
- Activate cPanel
Cpanel and WHM can also be installed on other cloud platforms. You can choose anyone from the below.
Here are some options.
Platform Machine Type Cost (Monthly) Digitalocean 4GB RAM – 2vCPU $20 Google Cloud Platform Standard 3.75 GB RAM $25 Amazon Web Services A1- Large 4 GB RAM $35
Check how to install cPanel on Google Cloud Platform.
Create an EC2 Instance
Launch a new EC2 Instance with CentOS 7 Amazon Machine Image.
Choose atleast t2 micro
instance type.
Add 40 GB
of Storage to your root volume.
Configure Security Group by adding rules for these custom ports.
- SSH with source
anywhere
(You can also restrict it) - HTTP with source anywhere
- HTTPS with source
anywhere
- DNS (UDP) with source
anywhere
- DNS (TCP) with source
anywhere
- Custom TCP
2077
with sourceanywhere
- Custom TCP
2078
with sourceanywhere
- Custom TCP
2082
with sourceanywhere
- Custom TCP
2083
with sourceanywhere
- Custom TCP
2086
with sourceanywhere
- Custom TCP
2087
with sourceanywhere
- Custom TCP
2096
with sourceanywhere
- Custom TCP
3306
with sourceanywhere
- Custom TCP
2525
with sourceanywhere
Create an instance by creating a new pem
key to access your instance using SSH. Keep this key safe, without this key you cannot access the instance.
Setup Route 53
Create a new DNS Hosted zone for you domain name and update the nameservers of Amazon on your domain name.
In your DNS manger create a new A record
with the name cpanel
which points to the Public IP Address
of the instance.
You can check your DNS records here by entering cpanel.yourdomain.com
Once everything is in place you can go ahead and install cPanel.
Install cPanel
Access your EC2 Instance with the PEM file you just downloaded.
Once you are connected to you instance enter the following commands one by one.
sudo -s
yum update
yum install perl
yum install wget
Then set the hostname with your domain name. Replace yourdomainname.com
with your domain name.
hostname cpanel.yourdomainname.com
Download latest cPanel and install it by running the following command.
cd /home && curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest
It will take around 30 – 40 min to complete the install. Don’t close the terminal until the setup is completed.
Once the setup is completed, you can set the root
password by executing the following command.
passwd
Save your password safely, you will need that to login to your WHM.
Set up Hostname in AWS
AWS Instance won’t preserve the hostname (cpanel.yourdomainname.com
) you set and changes it to default hostname automatically, so this may result in a locked cPanel & WHM license. To preserve the hostname follow the below simple
cd /etc/dhcp/dhclient-exit-hooks.d/
sudo nano set-hostname.sh
Paste the following contents and hit Ctrl+X
followed by Y
to save the file. Remember to replace yourdomainname.com
with your domain name
#!/bin/sh
hostname cpanel.yourdomainname.com
/scripts/fixetchosts
Set correct permissions to the file you created
chmod 744 set-hostname.sh
That’s all now your cPanel is installed and ready to finish the WHM setup
Setup WHM
Open your browser and navigate https://cpanel.yourdomainname.com:2087
https://PUBLIC_IP_ADDRESS:2087
). It will take some time for the SSL certificate to get issued by cPanel.

Enter username as root
Enter the password you created by running the command passwd
Now you will be logged into your WHM.
Click Agree to All.
Provide your email
address.

Click Finish
Now you will be taken to the WHM home page.

Setup Email in WHM
In AWS port 25, which cPanel & WHM utilizes for email is not open. So you need to create an account with Mailgun or Sendgrid and integrate with WHM for emails or Configure Amazon SES.
Allow SMTP on Port 2525
Go to Service Configuration >> Service Manager
Tick both boxes next to Exim Mail Server (on another port)
Change Allow exim to listen on a port other than 25 to 2525
Click Save
Email Configuration
As the standard email port is blocked in Google Cloud, you need to configure a third party email service provider to send emails. Here we can use Mailgun to configure emails in cPanel.
Make sure you have these DNS records.
A
record pointing to mail.domain.com
MX
record with 0 priority pointing to mail.domain.com
Mailgun Configuration
Go to Service Configuration >> Exim Configuration Manager.
Click Advanced Editor tab.
In daemon_smtp_ports enter 465 : 25 : 587 : 2525
In the Section: AUTH box enter.
mailgun_login:
driver = plaintext
public_name = LOGIN
hide client_send = : Default SMTP Login : Default Password
In the Section: PREROUTERS box enter.
mailgun:
driver = manualroute
domains = ! +local_domains
transport = mailgun_transport
route_list = * smtp.mailgun.org::2525 byname
In the Section: TRANSPORTSTART box enter.
mailgun_transport:
driver=smtp
hosts_try_auth = smtp.mailgun.org
Activate cPanel
cPanel is a subscription based software, you can activate your license.
Save the configurations, that’s everything about cPanel & WHM on AWS.
Shouldn’t you also describe how to disable SELinux? Many distro images come with it enabled.
In cPanel no option for installing wordpress, i’m not happy with this…
That’s optional. You need to install Softaculous via SSH to have that WordPress install feature.
All thinks working fine but not an email i have tried the sendgun but did not able to achive,