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 the 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
Cpanel and WHM can also be installed on other cloud platforms. You can choose any one from 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.
Launch a new EC2 Instance with CentOS 7 Amazon Machine Image.
t2 micro instance type.
40 GB of Storage to your root volume.
Configure Security Group by adding rules for these custom ports.
anywhere(You can also restrict it)
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.
Create a new DNS Hosted zone for your domain name and update the nameservers of Amazon on your domain name.
In your DNS manager 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
Once everything is in place you can go ahead and install cPanel.
Access your EC2 Instance with the PEM file you just downloaded.
Once you are connected to your 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.
Download the 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.
Save your password safely, you will need that to login to your WHM.
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 steps .
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
Open your browser and navigate to
https://cpanel.yourdomainname.com:2087 . At this point, some browsers show a warning message about HTTPS and don’t allow you to visit the WHM page. In this case, you can use your IP Address instead of the domain name (
https://PUBLIC_IP_ADDRESS:2087). It will take some time for the SSL certificate to get issued by cPanel.
Enter username as
Enter the password you created by running the command passwd
Now you will be logged into your WHM.
Click Agree to All.
Now you will be taken to the WHM home page.
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.
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
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
MX record with 0 priority pointing to
Go to Service Configuration >> Exim Configuration Manager.
Click the 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
cPanel is a subscription-based software, you can activate your license.
Save the configurations, that’s everything about cPanel & WHM on AWS.