Hire me on Fiverr! for Professional Google Cloud Services, WordPress Website Development, Security Setup, Website Migration.

This guide will help you learn how to install cPanel and WHM in Google Compute Engine VM Instance. This is the old set up of cPanel, you can view how to install and set up the latest cPanel v76 on Google Cloud.

cPanel is a server management software for website owners which comes with a 15-day trial. Then you need to subscribe for using cPanel

Steps to install cPanel and WHM

  1. Create the VM Instance
  2. Verify cPanel & WHM license history and validity
  3. Setup Cloud DNS
  4. Setup Firewall rules
  5. Install cPanel
  6. Set up Hostname in Google Cloud
  7. Setup WHM
  8. Setup Email in WHM

Create the VM Instance

Go to Compute Engine >> VM Instances and click Create Instance

In Name provide a name for your Instance

In Region choose the region closest to your visitors

In Machine Type choose 3.75 GB memory 1vCPU

In Boot disk click Change and choose CentOS 7. In Size enter your required size, the minimum should be 40 GB and click Select

In Firewall check both Allow HTTP traffic and Allow HTTPS traffic

Click Create

It will take a while before the VM instance will be available for you

Verify cPanel & WHM license history and validity

Once your VM instance is created you will be provided with an external IP address which is used to license your cPanel. So you need to verify if the IP address has a valid 15-day trial license. So visit verify cPanel license and enter your external IP address and click Verify License. If the IP address does not have a valid license you can restart your VM instance. Then a new IP will be assigned. Then you can check again.

Reserve your IP address

If your IP address has a valid license you can proceed to reserve your IP address by going to VPC Networks >> External IP Addresses reserve your IP address to Static

Setup Cloud DNS

Please follow this guide to setup Cloud DNS and point your domain to Google Cloud

Once you have created DNS Zone, you need to create one additional A record for cpanel subdomain in your Cloud DNS

Click Add record set

In Name enter cpanel

Select Resource Record Type to "A"

IPv4 Address with the IP address of your instance that you have reserved earlier

Leave everything to default.

Click Create

Now your VM instance is configured and ready to setup Firewall rules for cPanel installation.

Setup Firewall rules

cPanel & WHM uses some ports to manage the server, so you need to create a firewall to provide access to these ports.

Go to VPC Network >> Firewall rules and click Create Firewall rules

In Name enter cpanel

In Targets select All instances in the network

In Source filter select IP ranges

In Source IP ranges enter 0.0.0.0/0

In Protocols and ports check TCP and enter 2077, 2078, 2082, 2083, 2086, 2087, 3306, 53.
Also check UDP and enter 53.

Click Create

Install cPanel

Go to Compute Engine >> VM Instances and click the SSH button right next to your instance to open the terminal window in the browser

Once the terminal is opened 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

Now stop firewall and disable Network manager

systemctl stop firewalld
systemctl stop NetworkManager
systemctl disable NetworkManager

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 Google Cloud

Google Compute Engine won’t preserve the hostname (cpanel.yourdomainname.com) you set and changes it to default hostname, 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 filter. 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 to https://cpanel.yourdomainname.com:2087

Enter username as root

Enter the password you created by running the command passwd

Now you will be logged into your WHM

Agree with Terms and Conditions and go to step 2

Provide your email address

Server hostname which we set earlier

In Primary Resolver enter 8.8.8.8

In Secondary Resolver enter 8.8.4.4

Goto Step 3 and again Goto Step 4

Scroll down and Check Configure nameserver A records

Check Add hostname A records

Copy IP Address from Add hostname A records and paste in the above two IPv4

Goto step 5

Enable all notifications

Goto step 6

Click Finish

Goto WHM

Setup Email in WHM

In Google Cloud Platform port 25, which cPanel & WHM utilizes for SMTP, is not open. So you need to create an account with Mailgun or Sendgrid and integrate with WHM for emails
Google provides additional documentation for sending email from Compute Engine Instances here

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

Prevent sending mail & Disable Horde and Squirrel

Go to Server Configuration >> Tweak Settings

Click Mail

Prevent “nobody” from sending mail = On

Enable Horde Webmail = Off

Enable Mailman mailing lists = Off

Enable Roundcube webmail = Off

Enable SquirrelMail webmail = Off

Click Save

Mailgun Configuration

Go to Service Configuration >> Exim Configuration Manager

Click Advanced Editor tab

In CONFIG section, under domainlist local_domains enter lsearch;/etc/localdomains : localhost : cpanel.yourdomainname.com : [GOOGLE INSTANCE NAME] : @

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

Save the configurations, that’s everything about cPanel & WHM on Google Cloud.

9 Comments

  1. After the first time and that also just for about 15 minutes, I am not able to login to my WHM account.

    • CloudBooklet Reply

      Maybe DNS has not yes propagated or DNS is not mapped correctly. Fitst you can also use your External IP address to access WHM

  2. Bijay Kumar Shaw Reply

    How to set correct permissions to the file you created?

    • CloudBooklet Reply

      You mean the file set-hostname.sh.

      You can just set it to chmod 744 set-hostname.sh

  3. for the past problem, I have successfully completed it.
    for now I have a new problem. I have succeeded in cpanel. but I can’t add a new domain to the cpanel.
    the description is like this “Sorry, the domain has been assigned to an IP address that does not seem to use the DNS server associated with this server. Please transfer the domain to the server with these nameservers or ask your administrator to add one of the nameservers to / etc / ips. remotedns and make the A entry correct in the remote nameservers. ”
    I’ve changed the domain nameservers that I want to add to gcloud. still can’t too….

    • CloudBooklet Reply

      For adding a new domain please try creating private nameservers by hostnames pointing to the VM instance IP address and use them.

    • CloudBooklet Reply

      Please check you have enabled all the listed Firewall ports. TCP: 2082,2083,2086,2087,53 and UDP: 53

  4. I have followed all the steps by the one in this article.
    but always after I enter the IPv4 nameservers with my internal Vm instances ip.
    after a few minutes later connetion failed. and ssh also experienced the same thing (connetion failed to VM on port 22. learn more about possible causes of the issue)

    • CloudBooklet Reply

      The IPv4 address must be the External IP Address of your VM Instance. Please try this.

Write A Comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Please help us get 1000 likes in Facebook!
LIKE NOW

JOIN OUR NEWSLETTER

Sign up with your email address to receive tips and updates
SUBSCRIBE NOW
Terms and Conditions apply
close-link
Click Me