Skip to content

cPanel — Hosting Management Complete Guide

DodaTech Updated 2026-06-20 10 min read

In this tutorial, you'll learn about cpanel. We cover key concepts, practical examples, and best practices.

cPanel is a Linux hosting control panel for managing websites, email, DNS, databases, SSL, and backups through a graphical dashboard without command-line skills.

In this tutorial, you will learn how to navigate the cPanel dashboard, create and manage email accounts, configure DNS zones, install SSL certificates via AutoSSL, administer MySQL databases through phpMyAdmin, set up backups, and harden your hosting environment. DodaTech uses cPanel to manage Doda Browser download mirrors and Durga Antivirus Pro distribution servers.

What You'll Learn

By the end of this guide, you will confidently manage a cPanel hosting account: create email accounts, point domains with DNS zones, install free SSL certificates, administer MySQL databases, schedule backups, and apply security best practices.

Why cPanel Matters

cPanel powers over 30% of the world's shared hosting environments. Its intuitive interface reduces server management time by 80% compared to raw Bash command-line administration. For developers deploying client sites or managing multiple domains, cPanel is the industry standard.

cPanel Learning Path

flowchart LR
  A[Dashboard & Navigation] --> B[Email Management]
  B --> C[DNS & Domains]
  C --> D[SSL Certificates]
  D --> E[Database Administration]
  E --> F[Backups & Security]
  F --> G{You Are Here}
  style G fill:#f90,color:#fff

Dashboard Overview

When you first log into cPanel, you see a grid of icons organized into sections. The layout follows a logical grouping:

Section Key Tools Purpose
Files File Manager, Backups, Disk Usage Manage site files and restore points
Databases phpMyAdmin, MySQL Databases Create and manage database users
Domains Zone Editor, Redirects Point domains and manage DNS
Email Email Accounts, Forwarders, Filters Create mailboxes and routing rules
Security SSL/TLS, IP Blocker, Hotlink Protection Encrypt traffic and block threats
Software Select PHP Version, Installatron Choose runtime and install apps

The search bar at the top is the fastest way to find any tool. Type "SSL" and cPanel filters down to SSL-related options. Bookmark frequently used tools for faster access.

Email Management

cPanel makes creating professional email addresses straightforward.

Create an Email Account

# These are cPanel GUI steps, but you can also use the API:
# Create email account via cPanel API (UAPI)
curl -s -X GET \
  "https://yourdomain.com:2083/execute/Email/add_pop?email=contact&password=SecurePass123!&domain=yourdomain.com&quota=500" \
  -u "username:APITOKEN"

The interface requires three inputs:

  1. Username — the part before @ (e.g., contact)
  2. Password — strong password (12+ chars with mixed case, numbers, symbols)
  3. Storage quota — set a limit per mailbox (typically 500 MB to 2 GB)

Expected output

{
  "status": 1,
  "messages": ["Added contact"@yourdomain".com with quota 500 MB"]
}

This API-based approach is also how Docker-based hosting dashboards automate account provisioning at scale.

Configure Email Forwarders

A forwarder copies incoming mail to another address without storing it locally:

# Create forwarder via UAPI
curl -s -X GET \
  "https://yourdomain.com:2083/execute/Email/add_forwarder?domain=yourdomain.com&email=support&fwdopt=fwd&fwdemail=support@gmail.com" \
  -u "username:APITOKEN"

Expected output

{
  "status": 1,
  "messages": ["Forwarder added: support"@yourdomain".com -> support"@gmail".com"]
}

DNS Zone Editor

The Zone Editor lets you manage DNS records for your domains. This controls where traffic goes when someone types your domain.

Common DNS Record Types

Type Purpose Example
A Points domain to an IPv4 address @192.0.2.10
AAAA Points domain to an IPv6 address @2001:db8::1
CNAME Aliases one domain to another wwwyourdomain.com
MX Mail server routing @mail.yourdomain.com (priority 10)
TXT Verification and SPF records @"v=spf1 include:spf.yourdomain.com ~all"

Add an A Record via API

curl -s -X GET \
  "https://yourdomain.com:2083/execute/DNS/add_zone_record?domain=yourdomain.com&type=A&name=blog&address=203.0.113.25&ttl=14400" \
  -u "username:APITOKEN"

Expected behavior

Before: blog.yourdomain.com → NXDOMAIN (not found)
After:  blog.yourdomain.com → 203.0.113.25 (A record, TTL 4 hours)
Propagation time: 5 minutes to 24 hours depending on TTL

SSL Certificates

cPanel includes AutoSSL, which automatically installs free SSL certificates from Let's Encrypt or cPanel's in-house certificate authority.

Enable AutoSSL

# Check AutoSSL status via WHM API
curl -s -X GET \
  "https://yourhostname:2087/json-api/list_autossl_accounts?api.version=1" \
  -u "root:ROOTAPITOKEN"

AutoSSL works silently in the background. It:

  1. Verifies domain ownership via HTTP challenge
  2. Issues a 90-day certificate
  3. Installs it for the domain
  4. Auto-renews at 30 days before expiry

Manual SSL Installation

For non-AutoSSL certificates (paid EV certificates or wildcard certs):

# Install SSL via UAPI
curl -s -X GET \
  "https://yourdomain.com:2083/execute/SSL/install_ssl?domain=yourdomain.com&cert=-----BEGIN%20CERTIFICATE-----%0A...&key=-----BEGIN%20PRIVATE%20KEY-----%0A..." \
  -u "username:APITOKEN"

Expected output

curl -I https://yourdomain.com
# HTTP/2 200
# strict-transport-security: max-age=31536000

SSL certificates are critical for security — the same principle applies to CDN-terminated TLS and AWS Load Balancer SSL offloading.

Database Administration

Create a MySQL Database and User

# Create database
curl -s -X GET \
  "https://yourdomain.com:2083/execute/Mysql/create_database?name=yourdomain_blog" \
  -u "username:APITOKEN"

# Create user with password
curl -s -X GET \
  "https://yourdomain.com:2083/execute/Mysql/create_user?name=yourdomain_bloguser&password=Str0ngDBPass!" \
  -u "username:APITOKEN"

# Assign user to database with all privileges
curl -s -X GET \
  "https://yourdomain.com:2083/execute/Mysql/set_privileges_on_database?user=yourdomain_bloguser&database=yourdomain_blog&privileges=ALL%20PRIVILEGES" \
  -u "username:APITOKEN"

phpMyAdmin Quick Tasks

Through the phpMyAdmin interface, common operations include:

  • Export — download a .sql dump of your database for migration or backup
  • Import — restore a .sql file into an existing database
  • Run SQL — execute custom queries like SELECT * FROM users WHERE email LIKE '%@example.com'
  • Repair — fix corrupted tables with REPAIR TABLE wp_posts;

Expected output

-- After successful table repair
+------------------+--------+----------+----------+
| Table            | Op     | Msg_type | Msg_text |
+------------------+--------+----------+----------+
| yourdomain.wp_posts | repair | status   | OK       |
+------------------+--------+----------+----------+

Backups

cPanel provides multiple backup mechanisms:

Backup Type Location Frequency Retention
Full cPanel Backup Home directory Manual Until deleted
Partial Backups Download to PC Manual N/A
Remote Backups FTP/S3 destination Automated Configurable

Configure Remote Backup

# Set up a remote backup destination via UAPI
curl -s -X GET \
  "https://yourdomain.com:2083/execute/Backup/add_ftp_destination?host=s3.amazonaws.com&port=21&user=backupuser&pass=BackupPass123&remote_dir=/cpanel-backups/" \
  -u "username:APITOKEN"

Expected behavior

Daily backup runs at 02:00 server time
Compressed archive: backup-yourdomain-2026-06-20.tar.gz
Size: ~250 MB (compressed from 1.2 GB)
Uploaded via FTP to backup destination
Email notification sent to admin@yourdomain.com

Common Errors

1. "Your session has expired" When Logging In

cPanel sessions timeout after a configured period. Clear your browser cache and cookies, then re-login. For persistent issues, check the session.max_lifetime setting in WHM.

2. Email Sending Fails / Emails Go to Spam

Your domain lacks SPF, DKIM, or DMARC records. In cPanel's Zone Editor, ensure the following TXT records exist:

v=spf1 include:yourdomain.com ~all
v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb...
_dmarc  TXT  "v=DMARC1; p=none; rua=mailto:admin@yourdomain.com"

3. "Disk Quota Exceeded" Warning

Your account has used all allocated disk space. Check Disk Usage in cPanel to find large files. Common culprits: old backups in the backups/ directory, error logs, email attachments, and cached WordPress plugins.

4. Database Connection Errors in WordPress

The wp-config.php file has wrong database credentials. Verify DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST match what cPanel shows in MySQL Databases. The host is usually localhost.

5. AutoSSL Fails to Validate

AutoSSL could not prove domain ownership. Ensure the domain's A record points to your server's IP address and that no firewall blocks port 80 for the ACME challenge. Check /etc/letsencrypt/ logs in WHM.

6. File Manager Shows "500 Internal Server Error"

A corrupted .htaccess file in the public_html directory causes this. Use FTP to rename .htaccess to .htaccess.bak, then access File Manager again. Regenerate the file from your application.

7. "Resource Limit Is Reached" (503 Error)

Your account exceeded CPU or memory limits — common on shared hosting during traffic spikes. Optimize database queries, enable caching (CDN), and consider upgrading to a VPS plan.

Practice Questions

1. What is the difference between AutoSSL and a manually installed SSL certificate?

AutoSSL is free, automated, and renews automatically but only provides domain validation (DV) certificates. Manual installation supports organization validation (OV) and extended validation (EV) certificates but requires renewal every 1-2 years.

2. How do you create an email forwarder in cPanel?

Go to Email → Forwarders → Add Forwarder. Enter the email address to forward and the destination address. All incoming mail is redirected without being stored on the server.

3. What is the purpose of an SPF record in DNS?

An SPF (Sender Policy Framework) TXT record lists which servers are authorized to send email for your domain. It prevents spammers from forging your domain in the "From" field.

4. How do you restore a single file from a full cPanel backup?

A full cPanel backup is a .tar.gz archive. Download it via Backups → Download a Full cPanel Backup. Extract it locally with tar -xzf backup.tar.gz, find the file under homedir/public_html/, then upload it via File Manager.

5. Challenge: Migrate a WordPress site to a new cPanel account

Use the following process: (a) Export the MySQL database via phpMyAdmin as a .sql file. (b) Download the entire public_html/ via File Manager as a zip. (c) Upload the zip to the new server and extract it. (d) Create a new MySQL database and user in the new cPanel. (e) Import the .sql file into the new database. (f) Update wp-config.php with new database credentials. (g) Update the site URL in the wp_options table via phpMyAdmin.

Mini Project: Full cPanel Account Setup

Configure a complete cPanel hosting environment for a business website:

  1. Log into cPanel and browse the main sections to understand your layout
  2. Create three email accounts: info@, sales@, and support@ with 500 MB quotas each
  3. Add a new domain (addon domain) through Domains → Create a New Domain
  4. Set up an A record pointing a subdomain blog.yourdomain.com to your server IP
  5. Enable AutoSSL and verify the certificate is active
  6. Create a MySQL database named yourdomain_cms with a dedicated user
  7. Import a sample database schema via phpMyAdmin
  8. Configure daily remote backups to an FTP destination
  9. Set up email forwarders: support@ → your personal email

Test each component:

# Verify DNS resolution
dig blog.yourdomain.com +short
# Expected: your server IP

# Verify SSL
curl -I https://yourdomain.com | grep -i strict-transport-security
# Expected: strict-transport-security: max-age=31536000

# Test email delivery
echo "Test email from cPanel" | mail -s "cPanel Test" info@yourdomain.com
# Check info@yourdomain.com inbox in webmail

This setup is similar to how DodaTech manages Doda Browser support mailboxes and Durga Antivirus Pro update distribution servers.

FAQ

Is cPanel free?

cPanel is a paid product. Hosting providers include it in their plans. The license cost ranges from $15-$50/month depending on the number of accounts. Many providers offer it free on shared hosting plans.

Can I use cPanel with cloud servers like AWS?

cPanel supports installation on cloud VPS instances (AWS EC2, DigitalOcean, Vultr). You purchase a cPanel license separately and install it on your cloud server using the EasyApache installer.

What is the difference between cPanel and WHM?

WHM (Web Host Manager) is the admin-level interface for server administrators. It manages multiple cPanel accounts, server settings, and resource allocation. cPanel is the user-level interface for individual website owners.

How do I secure my cPanel account?

Use strong passwords (20+ characters), enable two-factor authentication in Security Settings, restrict IP access via the IP Blocker, and regularly review Login History for suspicious activity. Never share your cPanel login credentials.

Does cPanel support Node.js and Python apps?

cPanel 102+ includes Setup Python App and Setup Node.js App tools in the Software section. These allow deploying Python/Node applications alongside traditional PHP hosting, with automatic virtual environment and process management.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro