Skip to main content
DCHost / Practical guide

Install cPanel on a VPS: AlmaLinux, WHM and first login

cPanel and WHM provide a graphical interface for websites, email accounts and databases. WHM manages the server and its hosting accounts. cPanel manages one hosting account. They are installed together but use different login ports and permissions.

This guide is for a clean AlmaLinux 9 VPS. Do not apply it to a server with live websites, Plesk or another control panel. cPanel has no uninstaller; removing it requires rebuilding the operating system. Use a separate server for Plesk installation.

1. Prepare the server and license​

RequirementWhat to check
Clean, supported operating systemSelect AlmaLinux 9 in the DCHost customer portal and verify it again over SSH.
x86_64 virtual machineDCHost VPS/VDS services use Proxmox KVM. uname -m should show x86_64.
Sufficient resourcesOfficial minimum: 2 GB RAM and 20 GB disk. Recommended: 4 GB RAM and 40 GB disk. Allow more for websites, mail and backups.
Administrator accessYou need root access to the VPS. A shared hosting cPanel password is a different credential.
Static public IPv4The license is associated with the server's public IP. IPv6-only servers are not supported.
Hostname and DNSPrepare a separate hostname such as panel.example.com and an A record pointing to this VPS.
cPanel licenseDownloading the installer does not provide a license. You need an active paid license or an eligible, activated trial.

The official trial lasts 15 days and requires a cPanel Store account with a verified email address. Trial availability depends on eligibility; do not assume every IP qualifies. Check whether your server order includes a panel license.

Resources used in this example: 3 vCPUs, 4 GB RAM and a 60 GB disk. These are demonstration resources, not a capacity guarantee for your workload. In the DCHost customer portal, open VPS → New VPS, choose a suitable plan, billing period and AlmaLinux 9 template. The service order guide covers checkout and activation.

DCHost customer portalCheck the server status and operating system

The actual demo VPS screen separates status, resources and SSH access details.

DCHost customer portal · 15 October 2026 · Actual demo server
DCHost customer portal showing a running AlmaLinux 9 VPS with 3 CPUs, 4 GB RAM and a 60 GB disk; access and server identifiers masked.
A closer look
Check the Running status — detail from the screenshot above

Step 1: Check the Running status

  1. Check the Running status

    Running shows the virtual machine is powered on. Confirm operating-system access separately with a new SSH connection.

  2. Read the CPU, RAM and disk values

    This example uses 3 vCPUs, 4 GB RAM and a 60 GB disk. Leave enough free space for the panel and applications.

  3. Confirm AlmaLinux 9

    Operating System shows the template selected at checkout. Compare it with /etc/os-release on the server.

Keep the root password private. Run installation commands only after connecting to this service’s server over SSH.

AlmaLinux and Ubuntu use different package commands

The dnf commands on this page are for AlmaLinux. For Ubuntu/Debian, use the Linux update guide. Recheck current vendor support before following an old CentOS or Rocky Linux tutorial.

2. Connect over SSH and check the server​

Open SSH from your own computer. Run the following commands on the connected VPS. See first SSH login or SSH connection errors if you need help connecting.

cat /etc/os-release
uname -m
free -m
df -h /
df -i /
swapon --show
systemctl get-default

Confirm AlmaLinux 9 and x86_64. Leave room for updates and customer data: cPanel updates need at least 5 GB of additional working space under /usr/local/cpanel. df -i checks inode capacity, which can run out when a filesystem contains many small files.

This example also prepares 4 GB of swap. swapon --show lists active swap, while systemctl get-default checks the boot target; cPanel requires multi-user.target. If swap is absent, prepare appropriate space before installation. Swap does not increase your plan’s physical RAM.

Stop here if the server contains live websites, databases or another panel. Choose a clean server. Do not install Apache, PHP or MySQL independently before cPanel; its installer prepares the required components.

The actual terminal screenshot after preparation appears in the next section.

3. Prepare DNS, updates and SELinux​

Point the hostname to the VPS​

At your domain's authoritative DNS provider, create an A record for your chosen hostname pointing to this VPS's IPv4 address. With Cloudflare, select DNS only for the management hostname. This does not require changing your existing website or nameservers.

Replace panel.example.com below with your hostname:

hostnamectl set-hostname panel.example.com
hostname -f
getent ahostsv4 panel.example.com

The hostname and DNS record are separate settings. hostnamectl does not create a DNS record. Check that the lookup returns the correct VPS address before continuing. Use a management hostname different from a domain you intend to create as a hosting account.

Update the operating system​

On the new, empty server, review the proposed changes:

dnf check-update
dnf upgrade --assumeno

dnf check-update may return exit code 100 when updates are available; that alone is not an error. --assumeno displays the transaction and declines it. If the plan contains no unexpected removals or repository changes, run:

dnf upgrade

Read the summary and confirm with y. Do not shut down the server or start another package manager during the transaction. A server with existing applications also needs a maintenance window and a backup plan.

Apply cPanel's SELinux requirement​

cPanel requires SELinux to be disabled on AlmaLinux. This is a cPanel compatibility requirement, not a general recommendation for every Linux server.

Keep a backup, change the active SELINUX= line in /etc/selinux/config, and read it back:

cp -an /etc/selinux/config /etc/selinux/config.before-cpanel
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
grep '^SELINUX=' /etc/selinux/config

The output must be SELINUX=disabled. If no line appears, inspect the file before continuing. Restart the new, empty server with reboot. SSH disconnects during the reboot; reconnect and check:

getenforce
uname -r
hostname -f

getenforce must report Disabled. Resolve Enforcing or Permissive results before running the installer. Do not apply old instructions that disable NetworkManager on AlmaLinux 9.

Linux terminalVerify installation readiness in the terminal

AlmaLinux, the updated kernel, SELinux and free space were checked in the same SSH session.

Actual demo installation · 15 October 2026
Actual SSH output: AlmaLinux 9.8, SELinux Disabled, swap and free disk space.
A closer look
Read the OS and kernel versions — detail from the screenshot above

Step 1: Read the OS and kernel versions

  1. Read the OS and kernel versions

    AlmaLinux 9.8 and the kernel version after reboot are shown.

  2. Check the SELinux result

    The Disabled result required by cPanel is visible here.

  3. Review memory and disk capacity

    The swap row shows 4 GB; the disk row shows 54 GB free before installation.

The hostname and IP addresses are permanently masked.

Check firewall access before installation​

Review both the DCHost portal’s network rules and the operating-system firewall. Preserve SSH and console recovery access, and keep a copy of existing rules. cPanel’s installation requirements call for preparing the OS firewall before installation. On this empty demo server, the OS firewall was initially inactive; provider rules were checked separately. Do not assume your server has the same configuration. After installation, allow only the web and management services you use and verify access again. In this walkthrough, SSH and WHM were restricted to the management IP; web ports 80/443 and cPanel port 2083 remained open. A new SSH connection and normal HTTPS access were verified after applying the rules. This is a web-focused demo policy; mail, DNS and FTP need separate planning.

4. Run the official cPanel installer​

Use a persistent terminal session such as tmux to keep the installation running if SSH disconnects. Install the tools from the operating system's official repository:

dnf install perl curl tmux
tmux new -s cpanel-kurulum

Download the official installer. Continue only after the download succeeds.

cd /home
curl -fL -o latest https://securedownloads.cpanel.net/latest
sh latest

The installer prepares many packages; duration varies with resources and connectivity. Do not start a second installer. If SSH disconnects, reconnect and use tmux attach -t cpanel-kurulum. To detach without stopping the session, press Ctrl+B, then D.

If installation fails, review the error and the relevant final lines of /var/log/cpanel-install.log. Mask IP addresses, hostnames, email addresses and access information before sharing logs with support.

Linux terminalCheck that installation completed

The completion line in the actual installer output. Licensing and account setup follow this step.

Actual demo installation · 15 October 2026
Actual terminal output showing cPanel installation finished in 12 minutes and 9 seconds.
A closer look
Find the completion line — detail from the screenshot above

Step 1: Find the completion line

  1. Find the completion line

    The cPanel install finished message reported 12 minutes and 9 seconds in this run. Duration varies by server.

  2. Continue with initial WHM setup

    Installer completion does not mean the license or hosting account is ready. Complete the sign-in and licensing steps below.

Access details are permanently masked; the source output order is preserved.

Step-by-step videocPanel and WHM: actual installation recording

The silent terminal recording plays at 5× speed; idle gaps over 2 seconds are shortened. Event order is preserved. The approximately 12-minute session plays in 80 seconds.

What does the video show?​

  1. The previously downloaded official installer starts inside a persistent terminal session on the server.
  2. cPanel downloads and installs packages, then prepares service configuration. A second installer is not started.
  3. Package and background tasks finish. The screen shows cPanel install finished in 12 minutes and 9 seconds!.
  4. The installer finishes with exit code 0. Licensing, initial WHM settings and a cPanel account are separate steps after this recording.

The installed version in this walkthrough was verified as 138.0.15. Versions and installation times can differ in later runs.

5. Sign in to WHM and complete licensing​

Open your management address, such as https://panel.example.com:2087, replacing the example with your server hostname. Use the VPS root username and password for WHM. Your DCHost customer portal password belongs to a different account.

cPanel & WHMSign in to WHM with the root account

Port 2087 opens WHM for the server administrator.

Actual demo installation · 15 October 2026
WHM login screen with username, password and Log in.
A closer look
Enter the username — detail from the screenshot above

Step 1: Enter the username

  1. Enter the username

    Use root for this new VPS, rather than the customer-portal email.

  2. Enter the VPS password

    Use this server’s root password. Keep it out of screenshots and recordings.

  3. Continue with Log in

    Successful login opens the initial setup or licensing step.

WHM uses port 2087; a separate hosting account signs in to cPanel on port 2083.

Select Log in. The first-run flow may include agreements, licensing and initial settings. Read the terms and continue with a suitable license. If a license already exists, check that it is assigned to the correct public IP.

The initial certificate may not yet be trusted, depending on hostname DNS and licensing. Do not use a certificate bypass as the normal login procedure. Complete the hostname, DNS and service certificate setup, then verify a normal HTTPS login. Keep one-time administration links private.

Activate the trial through your WebPros account​

If a trial is offered, follow Log in to cPanel Store → Continue with WebPros Account. Existing cPanelID credentials can be used on the WebPros sign-in page. A new account may require email verification; enter the delivered code in your own sign-in screen.

cPanel & WHMOpen the trial-license step

This screen starts the free-trial flow; the license is not active yet.

Actual demo installation · 15 October 2026
WHM free-trial screen and the Log in to cPanel Store button.
A closer look
Read the trial details — detail from the screenshot above

Step 1: Read the trial details

  1. Read the trial details

    Account and IP eligibility are checked in the following steps.

  2. Continue to the cPanel Store login

    Log in to cPanel Store leads to the WebPros account sign-in flow.

If you already have an account, sign in instead of registering again.

If you see “An account with this email already exists”, sign in with that account instead of registering another one. Reaching the license page does not prove activation has completed.

In this walkthrough, WebPros email verification completed and WHM displayed 15-day free Trial License Activated. Next continued to initial setup. The trial lasts 15 days; it is not a permanent free license. Plan suitable licensing before it expires.

WHMVerify that the trial license activated

WHM displayed this actual confirmation after the WebPros account flow completed.

WHM · Actual demo account
WHM showing 15-day free Trial License Activated and the Next button.
A closer look
Read the confirmation — detail from the screenshot above

Step 1: Read the confirmation

  1. Read the confirmation

    Find 15-day free Trial License Activated. Distinguish an activation result from merely opening the license screen.

    What you should see: The page confirms activation for a 15-day trial.

  2. Continue to initial settings

    Select Next.

    What you should see: WHM opens contact and nameserver setup.

A trial license expires. Plan a suitable paid license before expiry if you intend to continue.

6. Review WHM contact and initial DNS settings​

In Email Address, enter an address where you can read server status and error notifications. Compare the Nameservers fields with your intended DNS arrangement.

This example preserved the existing ns1.dchost.com and ns2.dchost.com values. No registrar nameserver change was made. Do not copy these values on the assumption that DNS service is already configured for your VPS. If you operate your own DNS servers, plan authoritative DNS and glue records separately.

WHMComplete contact and nameserver setup

Check the notification address and the DNS arrangement you intend to use.

WHM · Actual demo account
WHM initial setup with a masked email address, two nameserver fields and Finish.
A closer look
Enter the notification address — detail from the screenshot above

Step 1: Enter the notification address

  1. Enter the notification address

    Use an address where you can read server notifications in Email Address.

    What you should see: The destination for status and error notices is set.

  2. Check nameservers against your plan

    This example preserved the existing ns1.dchost.com and ns2.dchost.com values. Verify your own DNS arrangement.

    What you should see: The fields are reviewed; this form does not change registrar delegation.

  3. Save the settings

    After reviewing the information, select Finish.

    What you should see: Initial setup is completed.

The email address is permanently masked. Do not assume the example nameservers provide configured DNS service for every VPS.

After reviewing the details, select Finish. Entering nameservers in WHM does not change a domain's registrar delegation; the website's A/AAAA records also need their own checks.

7. Create the first hosting account​

Open WHM → Account Functions → Create a New Account. This creates a cPanel hosting account inside the VPS. It does not buy a domain or order another VPS through the DCHost customer portal.

FieldWhat to enter
DomainA domain or suitable subdomain you control for this hosting account. Keep the server hostname separate from the website address.
UsernameThe new cPanel hosting account username. Do not use root as the customer account.
Password / Re-type PasswordEnter a strong password unique to this hosting account twice and save it in your password manager.
EmailAn accessible notification address for the hosting account.
Choose a PackageThe appropriate package you prepared. This example selected Docs Demo, an example package created for this walkthrough.
WHMEnter the hosting account details and package

Prepare a new cPanel user in Create a New Account.

WHM · Actual demo account
WHM account form with domain, username, both passwords and email masked; the Docs Demo package remains visible.
A closer look
Choose a domain and username — detail from the screenshot above

Step 1: Choose a domain and username

  1. Choose a domain and username

    Enter the website name in Domain and this hosting account’s username in Username.

    What you should see: The account is prepared separately from the server’s root user.

  2. Create a separate password

    Enter a strong account-specific password in Password and Re-type Password.

    What you should see: Both entries match; the root password is not shared.

  3. Add contact details

    Enter the hosting account’s notification address in Email.

    What you should see: The account contact is defined.

  4. Select the intended package

    Review Choose a Package. Docs Demo is an example package created for this walkthrough.

    What you should see: The selected package appears in the form.

Five private input values are masked. The real validation indicators and package selection are preserved; this form alone does not prove account creation.

Review cPanel Theme and Locale in the lower form. This walkthrough selected the jupiter theme and English. Evaluate Mail Routing, Reseller and DNS sections according to the service; do not give a new website account unnecessary administration privileges.

WHMReview theme, language and service options

Check the account options in the lower form before submitting creation.

WHM · Actual demo account
Lower WHM account form showing the jupiter theme, English locale, optional sections and Create.
A closer look
Check theme and language — detail from the screenshot above

Step 1: Check theme and language

  1. Check theme and language

    Read cPanel Theme and Locale. The example selects jupiter and English.

    What you should see: Interface preferences are defined for the new account.

  2. Review optional sections

    Change Mail Routing, Reseller and DNS settings only according to the service plan.

    What you should see: Avoid unnecessary privileges or incorrect DNS and mail routing.

  3. Submit account creation once

    After reviewing the form, select Create once and wait.

    What you should see: Creation starts; verify its result in the account list.

These selections belong to this demo. Do not submit another creation request for the same account while it is running.

After reviewing the fields, select Create once. Do not submit another creation request while it is running. The result page may show account details or a password; do not share that page publicly.

Verify the account in the list​

Open WHM → Account Information → List Accounts. Compare Domain, Username and Package with the account you created. This walkthrough created one demo hosting account and confirmed it in the list.

WHMFind the created account in List Accounts

The actual account list shows one hosting account, the example package and the final saved 5120 MB disk quota.

WHM · Actual demo account
WHM List Accounts showing one account, Docs Demo and a 5120 MB quota; domain, IP, username and email are masked.
A closer look
Read the list and record count — detail from the screenshot above

Step 1: Read the list and record count

  1. Read the list and record count

    Open WHM → Account Information → List Accounts and find the new account.

    What you should see: The example shows Showing all 1 records.

  2. Match the account and package

    Compare Domain, Username and Package with the account you created on your own screen.

    What you should see: The account and package match; there is no need to recreate it.

  3. Compare the quota with the package

    The Quota column shows 5120 MB, the 5 GB disk limit saved for this example. Compare your own account’s value with its package.

    What you should see: The quota column shows the final configured limit; the package name is not the only check.

  4. Verify cPanel access separately

    The cPanel icon in Quick Links opens the account; also check normal username/password login in the next step.

    What you should see: The account list and a customer login are separate checks.

Private account details are masked; other column values are unchanged. This screen does not prove website, DNS or email delivery operation.

Compare the disk quota as well​

Compare List Accounts → Quota with the disk allowance of the selected package. The final value for this demo account was verified as 5120 MB (5 GB). A package name alone does not establish that the operating system can enforce the disk limit.

If a package with a disk limit shows unlimited, first check quota support under WHM → Server Configuration → Initial Quota Setup. If the tool requests a reboot on an XFS filesystem, complete it during a maintenance window and check the quota state after startup. If needed, save the correct account limit again under WHM → Account Functions → Quota Modification.

In this run, XFS quota support was checked after reboot, the account limit was saved as 5120 MB through WHM, and native soft/hard limits were verified as 5 GB. No disk-filling limit test was performed. A disk quota is not a separate database quota that automatically blocks every MySQL/MariaDB database write.

The cPanel icon in Quick Links opens the account. Also verify the customer's normal sign-in: switching from a root session does not by itself prove that the customer can sign in with their own password.

8. Sign in to cPanel with the customer account​

Open https://panel.example.com:2083, replacing the example hostname with your server name. Enter the hosting account credentials created in step 7 in Username and Password, then select Log in. Do not use root or DCHost customer portal credentials here.

cPanelSign in normally with the hosting account

This login on port 2083 is separate from WHM root access.

cPanel · Actual demo account
Actual cPanel customer login with empty Username and Password fields and Log in.
A closer look
Enter the hosting username — detail from the screenshot above

Step 1: Enter the hosting username

  1. Enter the hosting username

    Use the hosting account username created in WHM in Username.

    What you should see: Do not use the server’s root account.

  2. Use that account’s password

    Enter the password for the new hosting account in Password.

    What you should see: Keep customer portal, root and hosting credentials distinct.

  3. Sign in

    Select Log in and check that the account’s tools open.

    What you should see: A successful login verifies separate customer-account access.

The screenshot was captured with empty login fields. The trial-license notice is not a hosting-password error.

This walkthrough successfully verified a normal username/password login for the separate hosting user on port 2083.

Review the first-login privacy choice​

A Consent and Privacy dialog may appear on first login. Read the explanation and privacy policy link. Leave the checkbox unchecked if you do not want to share optional usage statistics, then save your preference with Save and Continue.

cPanelReview the first-login analytics preference

Consent and Privacy explains the choice to share usage statistics with WebPros.

cPanel · Actual demo account
Actual cPanel Consent and Privacy dialog with its usage-statistics checkbox unchecked and Save and Continue.
A closer look
Read the explanation and policy — detail from the screenshot above

Step 1: Read the explanation and policy

  1. Read the explanation and policy

    Review the text and cPanel and WHM Privacy Policy link.

    What you should see: Understand why usage data is requested.

  2. Choose your preference

    Leave the checkbox unchecked if you do not want to share usage statistics.

    What you should see: Optional sharing is the user’s decision.

  3. Continue with the preference

    Review the choice and select Save and Continue.

    What you should see: The preference is saved and you can continue to the tools.

The image shows the actual dialog before saving. Its first-login appearance can vary by account or version.

The Tools screen then shows the features available to the account. Files contains file and backup tools, Databases contains database tools, and Email contains mailbox and forwarding tools. Appearance and available features can vary by account.

If a separate optional survey appears, close it with × (Close) in the upper-right corner. The survey may appear again on a later visit.

cPanelFind the right section in cPanel Tools

After a customer login, tools are grouped by purpose. Match the labels on the screen to the explanations below.

cPanel · Actual customer account
Actual cPanel customer Tools screen with Email, Files and Databases groups visible.
A closer look
Recognize the Tools screen — detail from the screenshot above

Step 1: Recognize the Tools screen

  1. Recognize the Tools screen

    Email, Files and Databases group the different management tasks.

    What you should see: Find the section that matches the task you need.

  2. Use File Manager for website files

    File Manager in the Files section opens the hosting account’s files and folders.

    What you should see: Reach the tool for working with website files.

  3. Use Backup Wizard for backups

    Backup Wizard walks through the supported backup and restore options. You cannot restore a full account backup yourself from this tool.

    What you should see: Identify the route for file and database backups.

  4. Separate the database tools

    Manage My Databases manages databases and database-user permissions. phpMyAdmin is for tables and import/export operations.

    What you should see: Separate database and permission management from data operations.

Captured after saving the optional analytics preference and closing the separate survey with its native close control. Available tools can vary by hosting account.

9. Verify the website, PHP and database after panel access​

A working panel login does not establish that the website's components work. Check the website domain's A/AAAA destination at its authoritative DNS provider; do not publish a nonworking IPv6 target. Website HTTPS and WHM/cPanel login certificates apply to separate addresses and service connections.

CheckWhat it verifies
/usr/local/cpanel/cpanel -VThe installed cPanel software version
Normal HTTPS login to WHMAccess to server administration
Actual activation confirmationCompletion of licensing or trial activation
List Accounts and a separate user login on 2083Creation of the hosting account and customer access
The sample website and PHP page at their own addressDNS, web access and PHP request handling
An application connection using a separate database/userPermitted database read/write operations

Verified in this walkthrough: WHM and the separate customer cPanel login opened over trusted HTTPS. The initial sample website check confirmed PHP 8.3.35, PHP-FPM, enabled OPcache and a successful database read through a read-only user. That first check used HTTP with a local address mapping to the correct server. Continue with the PHP and OPcache checks and database workflow.

Final HTTPS check: Let's Encrypt Certificate was selected for the main website domain through SSL/TLS Certificates → Wizard in the customer's cPanel account. After the certificate was issued, the site opened over HTTPS using normal DNS resolution without a local override. The PHP page returned 200 without bypassing certificate warnings, and the database read succeeded. Follow the certificate and HTTPS verification steps for your own domain.

On your own website, test the homepage, administrator login and a controlled write operation. Do not leave diagnostic files that expose configuration or credentials accessible to visitors. Mail delivery and backup restoration are separate checks; complete actual delivery and recovery tests when required.

cPanelVerify the installed certificate in Status

This image focuses on the certificate row for the selected main domain.

cPanel 138.0.15 · 15 October 2026
Verify the installed certificate in Status — actual cPanel screen; private details are masked.
A closer look
Open the Status tab — detail from the screenshot above

Step 1: Open the Status tab

  1. Open the Status tab

    After the certificate request, open Status inside SSL/TLS Certificates.

  2. Read the status and expiry date together

    This example shows AutoSSL Domain Validated and an expiry date of 13 January 2027. Later installations will have different dates.

  3. Check the certificate coverage separately

    Use View Certificate to inspect the names and details. This certificate covers only the selected main address; www and other subdomains require separate preparation.

A trusted HTTPS connection and PHP/database read were separately verified using normal DNS. Future automatic certificate renewal has not yet been tested.

Troubleshoot installation and login errors​

SymptomFirst checkNext step
SSH Permission denied or connection failureVPS IP, SSH username and portFollow the SSH error guide. Reinstalling cPanel does not fix SSH authentication.
Unsupported operating system/etc/os-release, architecture and current cPanel supportUse a supported clean OS; do not bypass the installer's OS check.
SELinux warninggetenforce and /etc/selinux/configCheck the persistent setting and the result after reboot.
Download or DNS failureHostname, resolver, clock and outbound connectivityFix the connection without disabling TLS or signature checks.
Insufficient memory or diskfree -m, df -h, df -iIncrease resources. Do not delete arbitrary system files. Swap is not a substitute for physical RAM.
Invalid license or license-file errorPublic IP, license status, clock and vendor connectivityVerify the license. /usr/local/cpanel/cpkeyclt can refresh an existing license; it does not buy one.
Port 2087 does not openWHM service and both server/provider firewallsPermit the required management port according to your access policy, rather than opening all ports.
WHM works but cPanel login fails2087 versus 2083, account creation and account passwordUse the correct hosting account and port.
HTTPS certificate warningHostname match, A record and service certificateComplete correct DNS and a trusted service certificate.

Firewall: Evaluate your actual SSH port, TCP 2087 for WHM and TCP 2083 for cPanel. Web services need TCP 80/443. DNS, mail and FTP need additional ports only when those services are in use. Exposing local MySQL to the internet is not part of basic setup. Review cPanel's official license connectivity and callback requirements, and verify firewall rules again after installation.

Next steps​

For an installed cPanel server, use WHM's Upgrade to Latest Version and Update Preferences. Do not independently replace panel-managed Apache, PHP or MySQL packages from other repositories. Operating-system package updates and panel-version updates are different operations.

Official references​

Requirements checked on 15 October 2026. Recheck current vendor support before installation.