How to Manually Migrate Accounts to cPanel & WHM from Unsupported Control Panels


Last modified: March 4, 2024

Overview

Warning:

Only experienced system administrators who understand migrations should perform this process.

System administrators can migrate accounts from unsupported third-party control panels to cPanel & WHM. WebPros International, LLC offers free migration services for Plesk®, DirectAdmin, and Ensim®.

Important:

You will need to customize unsupported services to use them on cPanel & WHM. cPanel & WHM only supports Apache®, BIND, Exim, and Mailman. For more information or assistance, open a support ticket.

Before migrating your accounts

Perform the following steps before you begin to migrate accounts:

Adjust DNS records

Decrease your DNS records’ Time To Live (TTL) on all of the account’s domains. This forces clients to update their copies of the DNS zones that your nameservers host.

  • We recommend that you perform this action several days before you begin the migration process.
  • For more information, read Virendra’s TalkTech’s Migrating Servers article.

Installation

To install cPanel & WHM on the new server, follow the steps in our Installation Guide.

Note:
  • cPanel & WHM requires a valid license. If this is a new installation, you can activate a free 15-day trial license.
  • To activate a new license, you must have a cPanel Store account with a verified email address.

During the installation process, select a hostname and main IP address for the new server. The system uses these settings to configure the DNS zone files for restored accounts. You can do this by customizing your installation or using WHM’s Basic WebHost Manager Setup interface (WHM » Home » Server Configuration » Basic WebHost Manager Setup).

Important:
  • You must select a main IP address that is not your old server’s main IP address.
  • You must select the same hostname, shared IP address, and nameservers as your old server.

Migrate your files

Note:

In the following examples, user is the cPanel account’s name.

After you create the new cPanel & WHM account, migrate the old server’s files and directories to the appropriate locations on your new server. Generally, you will migrate the following files and directories during this process:

The public_html directory

The public_html directory contains all of your files, directories, subdirectories, and content. This directory may appear as the /home/user/www directory or the /home/user/vhost directory on some systems.

  • The user must own the files and subdirectories in this directory.
  • Subdirectories in this directory must possess 755 permissions, and files in this directories must possess 644 permissions.

Example

The following is an example of the public_html directory:

1
2
3
4
5
6
drwxr-x---  7 user nobody   4096 Jan 11 08:35 ./
drwx--x--x 41 user user    4096 Mar 14 02:18 ../
drwxr-xr-x  2 user user    4096 May 20  2014 cgi-bin/
drwxr-xr-x  2 user user    4096 Sep  4  2014 entropybanner/
-rw-r--r--  1 user user       2 Jan 11 08:35 example.html
drwxr-xr-x  2 user user    4096 Jul 16  2013 scgi-bin/

The mail directory

The /home/user/mail directory contains all of the email files for all of the cPanel account’s email accounts. The /home/user/mail contains directory for each domain, subdomain, addon domain, and parked domain. These directories include subdirectories for each email address for the domain.

Important:

Users who migrate data to cPanel & WHM servers must convert any mbox data to the maildir format.

Example

The following are examples of the mail directory:


1
2
3
drwxr-x--x  3 user user 4096 Apr 28  2014 ./
drwxr-x--x 12 user user 4096 Sep 24 11:07 ../
drwxr-x--x  9 user user 4096 Jun  8  2015 servo/
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
drwxr-x--x 12 user user 4096 Sep 24 11:07 ./
drwx--x--x 41 user user 4096 Mar 14 02:18 ../
drwxr-x--x  3 user user 4096 Mar 23  2015 archive/
drwxr-x--x  3 user user 4096 Apr 28  2014 colin.com/
drwxr-x--x  2 user user 4096 Apr 22  2014 courierimapkeywords/
-rw-rw----  1 user user   36 Apr 30  2014 courierimapsubscribed
-rw-r--r--  1 user user   14 Apr 22  2014 courierimapuiddb
drwxr-x--x  2 user user 4096 Jul 15  2013 cur/
-rw-rw----  1 user user    0 Jun  8  2015 dovecot-acl-list
-rw-r-----  1 user user  244 Jun  8  2015 dovecot.index.log
-rw-r-----  1 user user   50 Jun  8  2015 dovecot-uidlist
drwxr-x--x  5 user user 4096 Apr 22  2014 .Trash/
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
drwxr-x--x 9 user user 4096 Jun  8  2015 ./
drwxr-x--x 3 user user 4096 Apr 28  2014 ../
-rw-rw---- 1 user user   43 Apr 30  2014 courierimapacl
drwxr-x--x 2 user user 4096 Apr 28  2014 cur/
drwxr-x--x 5 user user 4096 Apr 28  2014 .Drafts/
drwxr-x--x 5 user user 4096 Apr 28  2014 .Junk/
-rw-r----- 1 user mail    18 Jun 30  2014 maildirsize
drwxr-x--x 2 user user 4096 Apr 28  2014 new/
drwxr-x--x 5 user user 4096 Apr 28  2014 .Sent/
drwxr-x--x 2 user user 4096 Apr 30  2014 tmp/
drwxr-x--x 5 user user 4096 Apr 28  2014 .Trash/

The tmp directory

The /home/user/tmp directory contains the account’s temporary files and bandwidth and statistics data. For example, you can migrate your original server’s AWStats data to the /home/user/tmp/awstats directory.

Example

The following is an example of the tmp directory:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
drwxr-xr-x 11 user user  4096 Mar  2 12:26 ./
drwx--x--x 41 user user  4096 Mar 14 02:18 ../
drwxr-xr-x  3 user user  4096 Apr 18  2015 analog/
drwxr-xr-x  3 user user  4096 Apr 18  2015 awstats/
drwxr-xr-x  2 user user  4096 Sep  6  2013 cpbandwidth/
drwx------  2 user user  4096 May 12  2014 cpcsvimport/
drwx------  2 user user  4096 Jun  9  2015 horde/
drwxr-xr-x  2 user user  4096 Oct 22  2014 logaholic/
drwxr-xr-x  3 user user  4096 Oct 30  2014 pear/
drwxr-xr-x  3 user user  4096 Apr 18  2015 webalizer/
drwxr-xr-x  2 user user  4096 Oct 22  2014 webalizerftp/

The etc directory

The /home/user/etc directory contains the email account passwd, shadow, and quota files. For example, you can migrate your original server’s email account quota data to the /home/user/etc/quota directory.

Example

The following is an example of the tmp directory:

1
2
3
4
5
6
drwxr-x---  5 user mail  4096 Oct 21 10:23 ./
drwx--x--x 41 user user 4096 Mar 14 02:18 ../
drwx--x--x  3 user user 4096 Apr 22  2014 passwd/
-rw-r--r--  1 user user    0 Apr 22  2014 quota
-rw-r--r--  1 user user    9 Feb  4 09:33 cacheid
drwxr-x---  5 user user  4096 Mar 12 03:11 shadow/

The ssl directory

The /home/user/ssl directory contains the SSL certificates for the domains on the account.

Important:

After migrating the SSL certificates, you must activate them in the Manage SSL Hosts section of WHM’s Manage SSL Hosts interface (WHM » Home » SSL/TLS » Manage SSL Hosts).

Example

The following is an example of the ssl directory:

1
2
3
4
5
drwxr-xr-x  5 user user  4096 Aug  3  2015 ./
drwx--x--x 41 user user  4096 Mar 14 02:18 ../
drwx------  2 user user  4096 Feb 16  2015 certs/
drwx------  2 user user  4096 Feb 16  2015 csrs/
drwx------  2 user user  4096 Mar 25  2015 keys/

The mysql directory

The mysql directory stores the MySQL® databases for every account on the server.

Important:
  • You must create the empty database on the account first, and then restore it to that new database. To do this, use one of the following interfaces:
    • In cPanel & WHM version 118 and earlier, use cPanel’s MySQL® Database Wizard interface (cPanel » Home » Databases » MySQL® Database Wizard).
    • In cPanel & WHM version 120 and later, use cPanel’s Database Wizard interface (cPanel » Home » Databases » Database Wizard).
  • You must create a dump of your database and import it via cPanel’s phpMyAdmin interface (cPanel » Home » Databases » phpMyAdmin).

Example

The following is an example of the mysql directory:

1
2
3
4
5
6
7
8
drwxr-x--x 30 mysql mysql     4096 Mar 14 02:57 ./
drwxr-xr-x 26 root  root      4096 Nov 11 03:11 ../
drwx------  2 mysql mysql     4096 Jun 17  2014 apitest_hammock_r_d/
drwx------  2 mysql mysql     4096 Jun 17  2014 apitest_jason/
drwx------  2 mysql mysql     4096 Jun 17  2014 apitest_newestaddition/
-rw-rw----  1 mysql mysql    16384 Feb 20 03:07 aria_log.00000001
-rw-rw----  1 mysql mysql       52 Feb 20 03:07 aria_log_control
-rw-rw----  1 mysql mysql       56 Feb 11  2015 auto.cnf

The pgsql directory

The /var/lib/pgsql directory stores the PostgreSQL® databases for every account on the server.

Important:
  • You must create the empty database on the account first, and then restore it to that new database. To do this, use cPanel’s PostgreSQL Database Wizard interface (cPanel » Home » Databases » PostgreSQL Database Wizard).
  • You must create a dump of your database and import it via cPanel’s phpPgAdmin interface (cPanel » Home » Databases » phpPgAdmin).

Example

The following is an example of the pgsql directory:

1
2
3
4
5
6
7
8
drwxr-x--x 30 pgsql pgsql     4096 Mar 14 02:57 ./
drwxr-xr-x 26 root  root      4096 Nov 11 03:11 ../
drwx------  2 pgsql pgsql     4096 Jun 17  2014 apitest_hammock_r_d/
drwx------  2 pgsql pgsql     4096 Jun 17  2014 apitest_jason/
drwx------  2 pgsql pgsql     4096 Jun 17  2014 apitest_newestaddition/
-rw-rw----  1 pgsql pgsql    16384 Feb 20 03:07 aria_log.00000001
-rw-rw----  1 pgsql pgsql       52 Feb 20 03:07 aria_log_control
-rw-rw----  1 pgsql pgsql       56 Feb 11  2015 auto.cnf

After migration

After you migrate your files to your new cPanel & WHM server, perform the following steps:

  1. Confirm that all of the content and credentials migrated properly and that they function in the new environment.

  2. Update your domain’s nameservers to match the new nameservers on your cPanel & WHM server.

    Note:

    We also recommend that you edit the DNS records on your old server to point to your cPanel & WHM server so that all content forwards to the new server.

  3. Create cPanel and reseller accounts. To do this, use WHM’s Create a New Account interface (WHM » Home » Account Functions » Create a New Account).

Additional Documentation