{"id":4027,"date":"2026-04-30T05:24:42","date_gmt":"2026-04-30T05:24:42","guid":{"rendered":"https:\/\/skynethosting.net\/blog\/?p=4027"},"modified":"2026-05-07T05:27:45","modified_gmt":"2026-05-07T05:27:45","slug":"how-to-set-up-cpanel-and-whm-on-a-dedicated-server-from-scratch","status":"publish","type":"post","link":"https:\/\/skynethosting.net\/blog\/how-to-set-up-cpanel-and-whm-on-a-dedicated-server-from-scratch\/","title":{"rendered":"How to Set Up cPanel and WHM on a Dedicated Server from Scratch"},"content":{"rendered":"\n<p>You have the server. The credentials are in your inbox. The terminal window is open and staring back at you.<\/p>\n\n\n\n<p>Now what?<\/p>\n\n\n\n<p>Setting up cPanel and WHM on a fresh dedicated server is one of those tasks that sounds intimidating until you have done it once. After that first time, you realize it is actually a well-documented, step-by-step process that anyone willing to follow instructions carefully can complete successfully. The server does most of the heavy lifting. You just need to know the right sequence.<\/p>\n\n\n\n<p>This guide walks you through that sequence from beginning to end. Not the sanitized overview version that skips the parts that actually trip people up. The real version, with the commands, the configuration steps, the common mistakes, and the logic behind each decision so you understand what you are doing and why.<\/p>\n\n\n\n<p>By the time you finish this guide, you will have a fully functional cPanel and WHM hosting environment running on your dedicated server, ready to host client websites, manage hosting packages, and run a professional hosting operation under your own brand.<\/p>\n\n\n\n<p>Let us get started.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Are cPanel and WHM?<\/h2>\n\n\n\n<p>Before you touch a single command line, it is worth being clear on what these two tools actually are, how they relate to each other, and why they form the backbone of the majority of professional hosting businesses worldwide.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Overview of Hosting Control Panels<\/h3>\n\n\n\n<p>A hosting control panel is a web-based interface that sits on top of your server&#8217;s operating system and gives you a visual, clickable way to manage everything that would otherwise require direct command line access. Email accounts, databases, file management, SSL certificates, DNS records, software installations, and much more all become manageable through a browser interface rather than a terminal.<\/p>\n\n\n\n<p>Without a control panel, every administrative task on your server requires command line knowledge and familiarity with Linux system administration. With a control panel, a web designer with no Linux background can manage their hosting environment confidently. That accessibility is what made control panels central to the commercial hosting industry.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Difference Between cPanel and WHM<\/h3>\n\n\n\n<p>cPanel and WHM are two sides of the same product, each designed for a different audience.<\/p>\n\n\n\n<p>WHM, which stands for Web Host Manager, is the administrator interface. This is what you use as the server owner or hosting provider. From WHM you create and manage hosting accounts, configure server-wide settings, allocate resources, monitor server health, manage SSL certificates at scale, and control everything at the infrastructure level. Your clients never see WHM.<\/p>\n\n\n\n<p>cPanel is the end-user interface. When a client logs into their hosting account, they see cPanel. It gives them control over their own website files, email addresses, databases, subdomains, and application installations through Softaculous. They manage their slice of the server without any visibility into what exists on the rest of it.<\/p>\n\n\n\n<p>Think of WHM as the building manager&#8217;s office and cPanel as the individual apartment controls. Each tenant manages their own unit. The building manager controls the whole building.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why They Are Used in Hosting Businesses<\/h3>\n\n\n\n<p>cPanel and WHM became the industry standard for a simple reason. They solve the hardest problem in commercial hosting, which is making server management accessible to non-technical users without sacrificing the control that technical operators need.<\/p>\n\n\n\n<p>For a hosting business, this combination means you can manage hundreds of client accounts from a single interface, automate routine operations, maintain full administrative control, and give every client a clean, professional interface for managing their own hosting. The alternative is building all of that infrastructure yourself, which is neither practical nor cost-effective for most hosting operators.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Do You Need Before Installing cPanel and WHM?<\/h2>\n\n\n\n<p>Jumping straight into the installation without meeting the prerequisites is the fastest route to a failed install and a server you have to rebuild. Take fifteen minutes here to make sure everything is in order before you start.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supported Operating Systems<\/h3>\n\n\n\n<p>cPanel and WHM run on Linux only. As of 2026, the officially supported distributions are AlmaLinux 8 and 9, Rocky Linux 8 and 9, and CloudLinux 8 and 9. CentOS 7 reached end of life in June 2024 and is no longer supported for new installations.<\/p>\n\n\n\n<p>AlmaLinux 8 is the most widely recommended choice for new cPanel installations in 2026. It is a stable, enterprise-grade distribution with long-term support, excellent compatibility with cPanel&#8217;s requirements, and an active community. If your server came with a different operating system pre-installed, check whether cPanel supports it before proceeding.<\/p>\n\n\n\n<p>The installation must be performed on a fresh, clean operating system. A server with existing software, partial configurations, or previous installation attempts is likely to cause conflicts. Start clean.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Server Requirements: CPU, RAM, Storage<\/h3>\n\n\n\n<p>cPanel and WHM have minimum hardware requirements, and those minimums are genuinely minimums, not comfortable operating conditions. For a production hosting environment, you want to exceed them.<\/p>\n\n\n\n<p>The absolute minimum is 1GB of RAM, but cPanel itself recommends 2GB as a practical floor. For a server hosting multiple client accounts under any real load, 8GB of RAM is a more realistic starting point, with 16GB or more for servers running ten or more active accounts.<\/p>\n\n\n\n<p>Storage requirements depend on what you plan to host, but cPanel&#8217;s installation alone consumes several gigabytes. A dedicated server with at least 40GB of storage is the practical minimum, with 100GB or more for any serious hosting operation. NVMe or SSD storage is strongly recommended for the performance reasons covered in our server hardware guide.<\/p>\n\n\n\n<p>CPU requirements are modest. A modern dual-core processor handles cPanel&#8217;s administrative functions without difficulty. What matters more for CPU is the workload of the websites you plan to host, not cPanel&#8217;s own overhead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Valid License and Hostname Setup<\/h3>\n\n\n\n<p>cPanel requires a valid paid license to operate. Licenses are tied to the server&#8217;s IP address and must be active before the setup wizard will complete. You can purchase a license directly from cPanel at cpanel.net, or through your hosting provider if they offer licensed cPanel servers. SkyNetHosting.Net dedicated server plans include cPanel licensing options as part of the setup.<\/p>\n\n\n\n<p>Your server also needs a properly configured fully qualified domain name as its hostname before installation begins. A hostname like server1.yourdomain.com is the correct format. An IP address alone or an incomplete hostname will cause problems during installation and DNS configuration later. Set the hostname correctly now and save yourself a headache later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Prepare Your Dedicated Server<\/h2>\n\n\n\n<p>You are logged into your server via SSH as root. Before anything else goes on this machine, the operating system needs to be current and the basic configuration needs to be correct. These steps take less than ten minutes and prevent a significant number of installation problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Updating the Operating System<\/h3>\n\n\n\n<p>Run a full system update before you do anything else. This ensures your package repositories are current, any security patches are applied, and there are no dependency conflicts waiting to surface mid-installation.<\/p>\n\n\n\n<p>On AlmaLinux or Rocky Linux, run the following command:<\/p>\n\n\n\n<p>dnf update -y<\/p>\n\n\n\n<p>The -y flag confirms all prompts automatically. Depending on how recently the server was provisioned, this update may take anywhere from thirty seconds to several minutes. Let it complete fully before moving on.<\/p>\n\n\n\n<p>Once the update finishes, reboot the server to ensure any kernel updates are loaded:<\/p>\n\n\n\n<p>reboot<\/p>\n\n\n\n<p>Reconnect via SSH after the reboot completes, typically within a minute or two.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting the Hostname Correctly<\/h3>\n\n\n\n<p>The hostname needs to be set to a fully qualified domain name before cPanel installation begins. This domain does not need to be your main business domain. It is the server&#8217;s own identifier. A subdomain of a domain you control works perfectly: server1.yourhostingbrand.com, for example.<\/p>\n\n\n\n<p>Set the hostname with the following command, replacing the example with your actual intended hostname:<\/p>\n\n\n\n<p>hostnamectl set-hostname server1.yourhostingbrand.com<\/p>\n\n\n\n<p>Verify the change took effect:<\/p>\n\n\n\n<p>hostname -f<\/p>\n\n\n\n<p>The output should display your full hostname. If it does not, check that the hostnamectl command ran without errors before proceeding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configuring Static IP<\/h3>\n\n\n\n<p>Your dedicated server should already have a static IP address assigned by your hosting provider. Confirm this is the case and that the IP is correctly configured on the primary network interface before proceeding. cPanel binds to the server&#8217;s primary IP during installation, and changing the IP assignment afterward is a significant remediation task.<\/p>\n\n\n\n<p>Check your current IP configuration with:<\/p>\n\n\n\n<p>ip addr show<\/p>\n\n\n\n<p>Confirm the IP address shown matches the one your hosting provider assigned. If anything looks incorrect, contact your provider before continuing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install Required Dependencies<\/h2>\n\n\n\n<p>cPanel&#8217;s installer handles most dependency installation automatically, but there are a few packages and configurations that need to be in place first. Skipping this step is one of the most common reasons installations fail partway through.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Perl and System Packages<\/h3>\n\n\n\n<p>cPanel&#8217;s installation script is written in Perl, so Perl needs to be available on the system before the script can run. Install it along with a few other commonly required packages:<\/p>\n\n\n\n<p>dnf install -y perl curl wget<\/p>\n\n\n\n<p>These are lightweight packages and install quickly. The curl and wget utilities are needed to download the cPanel installer in the next step.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Network Tools and Updates<\/h3>\n\n\n\n<p>Ensure the server&#8217;s network tools package is installed and up to date. This package provides utilities that cPanel&#8217;s configuration process relies on:<\/p>\n\n\n\n<p>dnf install -y net-tools<\/p>\n\n\n\n<p>Also verify that the server can reach the internet by pinging an external address. If your server cannot reach cPanel&#8217;s download servers, the installation will stall:<\/p>\n\n\n\n<p>ping -c 4 google.com<\/p>\n\n\n\n<p>You should see four successful responses. If the ping fails, troubleshoot your server&#8217;s network configuration or contact your provider before continuing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Firewall Preparation<\/h3>\n\n\n\n<p>If your server is running firewalld or any other firewall service, you have two options. The safer approach for experienced administrators is to configure the firewall to allow cPanel&#8217;s required ports before installation. The simpler approach for a fresh server where you plan to configure security through cPanel&#8217;s CSF firewall afterward is to temporarily disable firewalld during installation:<\/p>\n\n\n\n<p>systemctl stop firewalld<\/p>\n\n\n\n<p>systemctl disable firewalld<\/p>\n\n\n\n<p>You will configure proper firewall rules through cPanel&#8217;s interface after installation is complete. Do not leave the server exposed without a firewall long-term, but disabling it temporarily for a clean installation is a reasonable approach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Download and Install cPanel and WHM<\/h2>\n\n\n\n<p>This is the main event. The cPanel installer is a single command that kicks off an automated process lasting approximately 30 to 60 minutes depending on your server&#8217;s speed and network connection. You start it and then largely wait for it to complete.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Running the Installation Command<\/h3>\n\n\n\n<p>Navigate to the root home directory and download the cPanel installer:<\/p>\n\n\n\n<p>cd \/home &amp;&amp; curl -o latest -L https:\/\/securedownloads.cpanel.net\/latest &amp;&amp; sh latest<\/p>\n\n\n\n<p>This command downloads the latest cPanel installer script and immediately executes it. The script handles everything from this point: downloading all required packages, installing and configuring Apache, MySQL, PHP, the mail server, the DNS server, and finally cPanel and WHM themselves.<\/p>\n\n\n\n<p>It is strongly recommended to run this command inside a screen or tmux session so that a dropped SSH connection does not interrupt the installation. If you are not familiar with screen, start it before running the installer:<\/p>\n\n\n\n<p>screen -S cpanel-install<\/p>\n\n\n\n<p>Then run the installation command inside the screen session. If your connection drops, reconnect via SSH and run screen -r cpanel-install to reattach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installation Process Overview<\/h3>\n\n\n\n<p>The installer outputs a continuous stream of progress information as it works through each stage. You will see it installing packages, configuring services, compiling components, and running tests. This is normal. Do not interrupt it.<\/p>\n\n\n\n<p>The entire process typically takes between 30 and 90 minutes. Faster NVMe servers with good network connections complete in the lower end of that range. Older hardware or slower network connections take longer.<\/p>\n\n\n\n<p>When the installation is complete, the installer outputs a success message with the URL for your WHM interface. Make note of this URL. It will look like https:\/\/your.server.ip:2087.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">First Boot Access to WHM<\/h3>\n\n\n\n<p>Open a browser and navigate to your WHM URL. You will likely see a security warning because WHM uses a self-signed certificate initially. Accept the warning and proceed. You will replace this with a proper SSL certificate during configuration.<\/p>\n\n\n\n<p>Log in with the root username and your server&#8217;s root password. If the page loads and accepts your credentials, your installation succeeded. You are now inside WHM for the first time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Initial WHM Configuration<\/h2>\n\n\n\n<p>The first time you log into WHM after a fresh installation, a setup wizard walks you through the essential initial configuration. Work through it carefully. The decisions you make here affect your entire hosting environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">License Activation<\/h3>\n\n\n\n<p>The wizard&#8217;s first step verifies your cPanel license against the server&#8217;s IP address. If you purchased your license correctly and it is tied to this server&#8217;s IP, this step completes automatically. If there is a license error, double-check that the license IP matches your server&#8217;s primary IP exactly.<\/p>\n\n\n\n<p>If you purchased your server through SkyNetHosting.Net with a cPanel license included, the license activation is handled as part of the server provisioning. Contact support if you see a license error on a server where licensing was included.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting Up the Administrator Account<\/h3>\n\n\n\n<p>The wizard will prompt you to configure the primary contact email address for the server. Use an email address you actively monitor. WHM sends security alerts, license renewal notices, and critical system notifications to this address. An unmonitored contact email is a security risk.<\/p>\n\n\n\n<p>Set a strong administrator password if prompted. The root password you used to log in is also the WHM administrator password by default, but this is a good moment to ensure it meets a high security standard: at least 16 characters, mixed case, numbers, and symbols.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Server Configuration<\/h3>\n\n\n\n<p>The wizard walks through nameserver selection, which we cover in detail in the next step. It also asks about the default PHP version and a few service configuration preferences. The defaults are sensible for most new installations. If you are not sure about a specific setting, accept the default and adjust it later once you understand the implications.<\/p>\n\n\n\n<p>Once the wizard completes, you land on the WHM dashboard. Take a few minutes to explore the interface before moving on. Familiarizing yourself with the layout now saves time later when you are looking for specific settings under load.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Configure Nameservers and DNS<\/h2>\n\n\n\n<p>This step is where many new cPanel administrators make mistakes that come back to haunt them. Nameserver configuration sounds technical, but the concept is straightforward and worth understanding properly before you click through it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting Up Private Nameservers<\/h3>\n\n\n\n<p>Private nameservers let your hosting brand appear in DNS records for all client domains, rather than exposing your server&#8217;s hostname or your provider&#8217;s infrastructure. Instead of ns1.yourhostingprovider.com appearing in your clients&#8217; DNS, your clients see ns1.yourhostingbrand.com. This is the white-label foundation of a professional hosting operation.<\/p>\n\n\n\n<p>In WHM, navigate to Basic WebHost Manager Setup under the Server Configuration section. Set your primary and secondary nameservers to ns1 and ns2 subdomains of a domain you control:<\/p>\n\n\n\n<p>ns1.yourhostingbrand.com<\/p>\n\n\n\n<p>ns2.yourhostingbrand.com<\/p>\n\n\n\n<p>After setting these in WHM, you also need to register these nameservers as glue records with your domain registrar. Log into your registrar&#8217;s control panel and create glue records that point ns1 and ns2 to your server&#8217;s IP address. This step is done at the registrar, not in WHM, and it is something many new administrators forget.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DNS Zone Configuration<\/h3>\n\n\n\n<p>WHM includes a built-in DNS server called BIND that manages DNS zones for all hosted domains automatically. When you create a new hosting account for a client, WHM creates the DNS zone for their domain automatically.<\/p>\n\n\n\n<p>What you need to verify is that the DNS server is running and accepting queries. In WHM, navigate to DNS Functions and then Basic DNS Zone Editor to confirm the interface is accessible and your server&#8217;s own DNS zone is correctly configured.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testing Domain Resolution<\/h3>\n\n\n\n<p>Once your nameservers are configured and glue records are registered, test that DNS resolution is working correctly. This can take up to 24 to 48 hours for glue record propagation to complete globally, but you can test against your local DNS immediately.<\/p>\n\n\n\n<p>From your local machine, use the dig or nslookup command to query your nameservers directly:<\/p>\n\n\n\n<p>dig @ns1.yourhostingbrand.com yourhostingbrand.com<\/p>\n\n\n\n<p>A successful response confirms your nameserver is resolving queries correctly. If you see no response or an error, check that your firewall is allowing DNS traffic on port 53 and that BIND is running on the server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Create Hosting Accounts in WHM<\/h2>\n\n\n\n<p>Your server is configured. Your nameservers are live. Now it is time to create the structure that your clients will use. This is where WHM transforms from a server management tool into an active hosting business platform.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting Up cPanel Accounts<\/h3>\n\n\n\n<p>In WHM, navigate to Account Functions and then Create a New Account. You will fill in the domain name for the new account, the username, the password, and the email address for the account holder. You will also assign a hosting package that defines the resource limits for this account.<\/p>\n\n\n\n<p>The username must be eight characters or fewer due to Linux system user constraints. Choose something recognizable that connects to the client&#8217;s domain or business name. The password should be strong, and you should use WHM&#8217;s built-in password generator rather than creating one manually.<\/p>\n\n\n\n<p>Once you click Create, WHM provisions the account, creates the cPanel environment for that user, sets up their home directory, configures their DNS zone, and sends a welcome email to the address you provided. The account is live within seconds.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resource Allocation for Users<\/h3>\n\n\n\n<p>When creating accounts, you assign resource limits that define how much of the server&#8217;s capacity each user can consume. These limits include disk quota, monthly bandwidth, maximum email accounts, maximum databases, and maximum subdomains.<\/p>\n\n\n\n<p>Setting appropriate limits is important for two reasons. It prevents any single client from consuming a disproportionate share of server resources, protecting the performance of all other accounts. And it creates the tiered structure that underpins your hosting pricing, with higher-tier plans receiving larger resource allocations.<\/p>\n\n\n\n<p>Monitor resource usage across your accounts regularly. A client consistently bumping against their limits is a natural conversation about upgrading their plan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Package Creation for Hosting Plans<\/h3>\n\n\n\n<p>Rather than manually entering resource allocations for every new account, WHM lets you create reusable packages that define a set of limits under a named plan. Navigate to Packages and then Add a Package.<\/p>\n\n\n\n<p>Create your standard hosting tiers here. A Starter package with modest disk and bandwidth limits, a Business package with expanded resources, a Pro package for high-traffic or resource-intensive sites. Once your packages are defined, creating new accounts becomes a matter of selecting the appropriate package from a dropdown rather than manually entering limits each time.<\/p>\n\n\n\n<p>Packages also make plan upgrades straightforward. When a client outgrows their current plan, you change their package assignment in WHM and the new limits apply immediately.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Secure Your cPanel Server<\/h2>\n\n\n\n<p>A cPanel server with clients on it is a target. Not because you specifically are being targeted, but because automated scanners probe hosting servers constantly looking for known vulnerabilities, weak credentials, and misconfigured services. Security is not optional. It is part of the infrastructure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Firewall Setup and Security Settings<\/h3>\n\n\n\n<p>The most widely used firewall solution for cPanel servers is CSF, ConfigServer Security and Firewall. It installs alongside cPanel, integrates directly with WHM, and provides a comprehensive rule-based firewall with login failure detection and automatic IP blocking for brute force attacks.<\/p>\n\n\n\n<p>Install CSF from the command line:<\/p>\n\n\n\n<p>cd \/usr\/src &amp;&amp; wget https:\/\/download.configserver.com\/csf.tgz &amp;&amp; tar -xzf csf.tgz &amp;&amp; cd csf &amp;&amp; sh install.sh<\/p>\n\n\n\n<p>After installation, access CSF through WHM under Plugins. Run the check to confirm your server passes CSF&#8217;s security evaluation. Address any warnings it flags before going live with client accounts.<\/p>\n\n\n\n<p>In WHM itself, navigate to Security Center and work through the Security Advisor recommendations. WHM&#8217;s built-in Security Advisor scans your configuration and flags specific settings that need attention, with direct links to fix each one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SSH Hardening<\/h3>\n\n\n\n<p>The default SSH configuration on a fresh Linux server is functional but not optimally secure. A few changes significantly reduce your exposure.<\/p>\n\n\n\n<p>Open the SSH configuration file:<\/p>\n\n\n\n<p>nano \/etc\/ssh\/sshd_config<\/p>\n\n\n\n<p>Change the default port from 22 to a non-standard port above 1024. This does not provide strong security on its own but eliminates the vast majority of automated scanning that targets port 22 specifically. Also set PermitRootLogin to no and configure key-based authentication rather than password authentication. These three changes together make SSH brute force attacks significantly harder.<\/p>\n\n\n\n<p>Restart SSH after making changes:<\/p>\n\n\n\n<p>systemctl restart sshd<\/p>\n\n\n\n<p>Make sure you test your new SSH configuration by connecting in a new terminal window before closing your existing session. Locking yourself out of SSH on a remote server requires a support ticket to fix.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic Updates and Backups<\/h3>\n\n\n\n<p>In WHM, navigate to Update Preferences under Server Configuration. Configure automatic updates for cPanel itself and for system packages. Running outdated software is the single most common source of security vulnerabilities on hosting servers.<\/p>\n\n\n\n<p>Set up automated backups through WHM&#8217;s Backup Configuration. Configure daily backups with at least seven days of retention, and configure backup transport to send copies to an external location: a remote server, an S3-compatible storage bucket, or a network share. A backup that exists only on the same server you are trying to recover is not a backup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common Mistakes During Installation<\/h2>\n\n\n\n<p>These are the problems that appear most frequently in cPanel installation support forums and help threads. Knowing them ahead of time means you avoid them entirely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Incorrect Hostname Configuration<\/h3>\n\n\n\n<p>Setting the hostname to just a simple word, a bare IP address, or a domain without a subdomain prefix is the most common pre-installation mistake. cPanel requires a properly formatted fully qualified domain name as the hostname. server1.yourdomain.com is correct. yourdomain.com is not. server is not. 192.168.1.1 is definitely not.<\/p>\n\n\n\n<p>If you proceed with an incorrect hostname, you will encounter errors during the nameserver configuration stage that require you to go back and fix the hostname and then reconfigure several components. Set it correctly before you run the installer and this entire class of problems disappears.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Missing License Activation<\/h3>\n\n\n\n<p>Attempting to complete WHM&#8217;s setup wizard without a valid active license results in a license error that blocks the wizard from completing. The license must be active and tied to the correct IP address before you reach this step.<\/p>\n\n\n\n<p>If you see a license error, verify three things. First, that the license was actually purchased and activated. Second, that the IP address on the license matches your server&#8217;s primary public IP exactly. Third, that enough time has passed for the license activation to propagate through cPanel&#8217;s licensing servers, which typically takes a few minutes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Firewall Blocking Access<\/h3>\n\n\n\n<p>After installation, one of the most frequent issues new administrators encounter is being unable to reach WHM or cPanel through their browser. In almost every case, this is a firewall blocking the required ports.<\/p>\n\n\n\n<p>cPanel and WHM use several non-standard ports that are not open by default on most firewall configurations. WHM is accessible on port 2087. cPanel on port 2083. Webmail on port 2096. If you configured CSF or any other firewall and cannot reach these interfaces, check your firewall rules and ensure these ports are open for your IP address.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Does SkyNetHosting.Net Inc. Support cPanel and WHM Hosting?<\/h2>\n\n\n\n<p>Everything we have covered in this guide assumes you are setting up cPanel and WHM on a raw server from scratch. That is the right knowledge to have. But it is worth knowing that you do not always have to do it manually.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pre-Configured Hosting Environments<\/h3>\n\n\n\n<p>SkyNetHosting.Net offers dedicated servers with cPanel and WHM pre-installed and pre-configured as part of the provisioning process. The operating system is current, the hostname is set correctly, the license is active, the initial WHM configuration is complete, and the server is ready for you to log in and start creating hosting accounts.<\/p>\n\n\n\n<p>This option is particularly valuable for hosting businesses that want to get operational quickly without spending hours on server setup. The infrastructure is handled. You focus on the business side: creating packages, onboarding clients, and building your hosting brand.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fully Managed or Reseller-Ready Infrastructure<\/h3>\n\n\n\n<p>For operators who want even less involvement in server management, SkyNetHosting.Net&#8217;s managed dedicated server options handle ongoing maintenance including security updates, cPanel version upgrades, backup verification, and server monitoring. Issues at the infrastructure level are handled by the SkyNetHosting support team without requiring your involvement.<\/p>\n\n\n\n<p>For resellers who want full control but do not want to manage the underlying hardware, the reseller hosting plans provide a complete WHM and cPanel environment running on SkyNetHosting&#8217;s infrastructure, with your brand on every touchpoint and none of the server management overhead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">High-Performance Dedicated Servers<\/h3>\n\n\n\n<p>SkyNetHosting.Net&#8217;s dedicated servers run on NVMe SSD storage and are connected to high-capacity network infrastructure. For a cPanel hosting business, that underlying performance means every client account on your server benefits from fast disk I\/O, low latency database queries, and network capacity that handles traffic growth without degradation.<\/p>\n\n\n\n<p>cPanel and WHM are excellent tools. Their real-world performance depends entirely on the hardware they run on. Building your hosting business on capable infrastructure from the beginning is significantly less disruptive than migrating an established client base to better hardware after you have already outgrown an underpowered setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Setting Up cPanel and WHM Transforms a Dedicated Server Into a Hosting Platform<\/h3>\n\n\n\n<p>A raw dedicated server is powerful hardware waiting for purpose. cPanel and WHM give it that purpose. The installation process we have walked through, from operating system preparation through security hardening, takes a blank Linux server and turns it into a professional hosting environment capable of supporting dozens or hundreds of client websites under your own brand.<\/p>\n\n\n\n<p>Understanding each step in that process is valuable whether you are doing the installation yourself or working with a provider who handles it for you. You know what has been configured, why each decision was made, and what to check when something needs attention later.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Proper Configuration Is Critical for Stability and Scalability<\/h3>\n\n\n\n<p>The difference between a cPanel server that runs smoothly for years and one that creates constant problems is almost always in the initial configuration. The hostname set correctly from the start. The firewall configured before clients go live. The backup system set up before anything is at risk. The nameservers registered properly before domains are pointed.<\/p>\n\n\n\n<p>None of these steps are technically complex. They are all just things that need to be done in the right order with the right attention. This guide gives you that order. Following it carefully means your hosting environment starts on solid ground rather than on assumptions and shortcuts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SkyNetHosting.Net Provides Optimized Infrastructure for cPanel-Based Hosting Businesses<\/h3>\n\n\n\n<p>Whether you set up your cPanel server from scratch using this guide or start with a pre-configured SkyNetHosting.Net dedicated server that is ready to go immediately, the combination of cPanel, WHM, and capable underlying hardware is a proven foundation for a professional hosting business.<\/p>\n\n\n\n<p>SkyNetHosting.Net provides the hardware, the licensing options, the NVMe storage performance, and the 24\/7 live support to back your hosting operation at every stage of its growth. From your first client account to your hundredth, the infrastructure is there to support it.<\/p>\n\n\n\n<p>Your hosting business starts with a server and a plan. Now you have both.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You have the server. The credentials are in your inbox. The terminal window is open and staring back at you. Now what? Setting up cPanel and WHM on a fresh dedicated server is one of those tasks that sounds intimidating until you have done it once. After that first time, you realize it is actually [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4027","post","type-post","status-publish","format-standard","hentry","category-skynethostinghappenings"],"blog_post_layout_featured_media_urls":{"thumbnail":"","full":""},"categories_names":{"1":{"name":"Skynethosting.net News","link":"https:\/\/skynethosting.net\/blog\/category\/skynethostinghappenings\/"}},"tags_names":[],"comments_number":"0","wpmagazine_modules_lite_featured_media_urls":{"thumbnail":"","cvmm-medium":"","cvmm-medium-plus":"","cvmm-portrait":"","cvmm-medium-square":"","cvmm-large":"","cvmm-small":"","full":""},"_links":{"self":[{"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/posts\/4027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/comments?post=4027"}],"version-history":[{"count":1,"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/posts\/4027\/revisions"}],"predecessor-version":[{"id":4028,"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/posts\/4027\/revisions\/4028"}],"wp:attachment":[{"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/media?parent=4027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/categories?post=4027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skynethosting.net\/blog\/wp-json\/wp\/v2\/tags?post=4027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}