Step-by-Step Guide for migrating cPanel to DirectAdmin

Step-by-Step Guide for migrating cPanel to DirectAdmin

Due to the recent new pricing scheme for cPanel, customers’ businesses have been impacted destructively. Therefore, customers have to go through a wide range of choices and some of them decided to migrate into DirectAdmin.

The DirectAdmin is the web hosting control panel software, which lets you administer your website as well as hosting options with the help of the graphical and web-based interface. With this, you can manage an unlimited number of websites as well as email accounts using a DirectAdmin control panel. It automates the task so that the web servers can be shared easily and provide a way to the website owners to set up as well as manage their websites in a fast way. 

In general, DirectAdmin allows you to:

  1. Create and manage email addresses, FTP user accounts
  2. Managing DNS
  3. Observing statistics
  4. Managing the FrontPage extensions
  5. Creating and managing subdomains
  6. Uploading and managing the file with the help of File Manager
  7. Managing MySQL Databases
  8. Backing up and restoring the site files and the account data
  9. Setting up error pages
  10. Setting up directory password protection
  11. Installing SSL certificates, setting up cron jobs as well as advanced tools.

You can easily establish and manage hundreds of websites. Also, DirectAdmin costs very low and has been considered as one of the most popular web hosting control panels. It consists of every feature which you will need to set up your website on the hosting platform.

Now, the question arises.

How do we migrate data from cPanel to DirectAdmin?

Migration is generally a bit risky as it involves live websites. Even a single mistake can cause so many website errors as well as data loss. We always take care of every step along with the proper planning.  So, in total, there are two ways to carry out cPanel migration. 

Following is a step-to-step guide for migrating cPanel to DirectAdmin

First Case: This case is applicable when we have root(WHM) access to SSH shell and we can migrate cPanel via the command line.

Let us have a checklist for this:

  1. Being sure that the hardware on the destination server is greater if not equals to the source server hardware specifications. You are also free to select different configurations from either Dedicated servers or Cloud VPS.
  2. Being sure to include the DirectAdmin license in the order.
  3. Being sure that you have the same amount of IPV4 addresses on your destination server as the source server.

Now, follow the steps below:

First Case: This case is applicable when we have root(WHM) access to SSH shell and we can migrate cPanel via the command line.

Let us have a checklist for this:

  1. Being sure that the hardware on the destination server is greater if not equals to the source server hardware specifications. You are also free to select different configurations from either Dedicated servers or Cloud VPS.
  2. Being sure to include the DirectAdmin license in the order.
  3. Being sure that you have the same amount of IPV4 addresses on your destination server as the source server.

Now, follow the steps below:

Step 1: Downloading the conversion tool

Initially, you need to download cPanel to DirectAdmin conversion tool.

Run the command line:

wget https://www.pusathosting.com/file/da.cpanel.import.9.4.tar.gz

Step 2: Creating paths

This tool will require a path (import and export one) which it will use for the conversion. What we will do is create the import and export directories.

mkdir import export

Step 3: Copying the files to “import directory”

What we will do is copy the user backups from cPanel to the import directory.

You can easily create the backups within the cPanel GUI or with the help of the following command:

/scripts/pkgacct USERNAME

This tool will convert the backups created by the following:

  • the ‘/scripts/pkgacct’ script
  • cPanel’s ‘Full Backup’ GUI tool

You need to run the following command on the source server with cPanel where you would be replacing root@x.x.x.x with the user as well as the IP address of the new DirectAdmin server.

rsync -av /home/cpmove-USER.tar.gz root@x.x.x.x:/import/

You know the name of the backup file is cpmove-USER.tar.gz and this is different for every account.

Step 4: Matching configuration

Now, you need to edit the defaults.conf so to match the DirectAdmin destination server. Here, you must only need to change the IP as well as the nameserver fields.

Step 5: Executing module

Now, you need to proceed to execute the module with the help of the command below and follow the on-screen instructions.

perl da.cpanel.import.pl

Step 6: Moving converted backups

After the completion of converting backups, you need to move the new files from the “export” directory to any DA/home/RESELLER/user_backups directory.

So, we will be using user “admin” as an example.

mv ./export/admin.tar.gz /home/admin/user_backups/

Step 7: Restoring the backups

So, we will now be restoring the backups in the DirectAdmin GUI.

With the help of the “Manage User Backups” tool within the reseller level.

a.) Choose the directory

b.) Choose the option “Stored in the backup”

c.) Select the backup files

So, this is one way to complete the migration from cPanel to DirectAdmin.

Second Case: So, the next case is when we do not have any access to SSH shell and have to migrate the cPanel manually i.e. without any tool.

Step 1: Packaging your account

If you do have root access to the server via SSH (like if you have any VPS), you can do this simply by following the command.

/scripts/pkgacct username

This command will place the cpmove-username.tar.gz file into the /home directory where it can be downloaded via FTP/SCP.

For those who only have user-level cPanel access, you need to login to your cPanel account. You will see a Wizard icon named Backup under the file section.

So, when you click on it, you will be prompted to

1. Backup

2. Full Backup

3. Provide email

When you have completed backup packaging, you will receive an email notification. The generated file will be placed in your home directory. So, you have to download this .tar.gz file onto your desktop.

Step 2: Preparing to upload

For those of you who are windows users, you have to download such as 7-Zip to unpack the tar.gz file. Now, you need to create a folder to place the file in and unpack it. The resulting files will be the entire data from your cPanel account (which also includes your mail in MailDir format). Now, you will find the homedir.tar and pull it out of the folder and then extract it.

Once extracted, you will see several folders that were in your home directory. In the tmp folder, you may find the statistics such as webalizer that can be opened right from your desktop. Moreover, the files you want to concentrate on, are present in /public_html.

If you use any add-on domains, then you need to move them from the public_html folder. Once you have done all this, you can then compress the public_html folder content as a .zip file. You need to do the same for each one of the add-on domains. But, remember to not delete the uncompressed copies.

Step 3: Moving files to DirectAdmin:

Next, you will login into your DirectAdmin account.

In case if you have any add-on domains or subdomains, click on the Domain setup.

After adding the domains as well as subdomains you do have, you can then click on the Files in the top menu bar. Now, you need to click on the ‘domains’ folder. You will see a list of each of your primary domain. For every domain, you would have to click into them until you reach public_html.

Now, you can select the entire files in the folder and delete them. Once you have removed it, you can click on the ‘Upload files into the current directory’ button near the bottom. Therefore, on the same page, you can select the zip file you created for the domain and upload it.

Once you upload it, you can click on the ‘extract’ link in the following row. By doing this, you will get a preview of the compressed archive’s contents. Now, as you can see my test zip, with being an OSX, there is a couple of extra files like _MACOSX and .dstore which can be deleted after the extraction. You can also see that when it is extracted, it will create a public_html folder. So, go for extracting the file.

Once it is extracted, and if the home files directories unpacked in the accurate location then you should not worry about moving anything. If your compressed file extracted into the new folder like another public_html folder, you will click on that folder. Moreover, on the top right, you have to select all the files and click on “Add to Clipboard”.

Now, go one folder back upside and click on the ‘MoveClipboard Files here’ after which you have to click on “Empty Clipboard”. So, here, you will be able to delete the extra public_html folder and the .zip file which was originally uploaded. Now, you need to repeat this step for every domain you have. You will see subdomains as a folder under the original’s domain’s name.  Therefore, if you have sub.testsite.com, it will appear as a folder named as /sub under /domains/testsite.com/public_html.

If you run a WordPress blog, you will have a good chance that your new DirectAdmin account won’t share the same username as your cPanel account. For the same reason, you would like to edit your wp-config.php file to change prefixed username_database/usr to a new username before _. You must also note the password in wp-config.php.

Step 4: Preparing your database:

Go to your extracted cPanel backup folder, you will see a MySQL folder. You will find SQL dumps of each of your database that includes horde or roundcube webmail databases.

Now, you need to login back to the DirectAdmin and click on the domain to find “MySQL Management” and click on the specific link. From here, you will click on ‘Create new database’.

You will see that the DA username is different from the cPanel username. For the password field, you need to make sure that you use the same password which your script was already using for the database. Now, you need to repeat this step for every database you have.

Note for the shell users:

If you are able to login to your account via SSH, then you can simply upload the .sql files via FTP/SCP to your home folder and from there, you can enter the following command to import your database.

mysql -utestuser_dbuser -p testuser_databasename < sql_file.sql

For your every SQL file, you can compress them as SQL files. Now, you can return to the MySQL setup screen and click on phpMyAdmin in the top left corner.

Here, you need to enter the username and password for the database which you are trying to upload. Once it is inside, click on the database you want to upload on the left. Now, you can click on the import tab and select your compressed sql file and click on the go. If everything goes well, you will see a success message on the screen which is followed by the database, showing a table count next to it.

To upload another database for a different database, user needs to click on the exit icon near the logo to be convinced for another username and repeat the process.

So, this is another way to migrate cPanel to DirectAdmin and that is, manually.

Conclusion:

In short, DirectAdmin is the cheapest control panel and is very simple and user-friendly. So, migrate your cPanel to DirectAdmin today with WGS and without experiencing any website downtime.