Moving from cPanel to DirectAdmin is possible, but because they use different architectures, it requires a conversion process. DirectAdmin provides a tool to convert cPanel backups into a format that DirectAdmin can restore.
Before you start, be aware that not everything can be converted automatically:
- Databases: MySQL/MariaDB is supported. PostgreSQL is NOT converted.
- Languages: Ruby environments are not migrated.
- Email: Mailman mailing lists are not converted to Majordomo.
- Format: Standard cPanel backups work best. JetBackup files require manual intervention.
Phase 1: On the cPanel Server (Source)
First, we need to package all accounts on the old server and transfer them to the new one.
- Log in to the cPanel server via SSH as
root. - Create a directory for the backups:
mkdir -p /home/all_backups - Run the following loop to create a backup for every user on the system:
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/all_backups; }; done - Transfer the backups to your new Tilaa VPS using
rsync(replace IP with your new server's IP):rsync -avt --delete /home/all_backups/ root@1.2.3.4:/home/admin/all_backups/
Phase 2: On the DirectAdmin Server (Target)
Now we need to install the conversion tool and process the files.
1. Install/Update the Converter
Log in to your DirectAdmin VPS via SSH as root and ensure you have the latest scripts.
cd /usr/local/directadmin/custombuild
./build update
./build cpanel_to_da
2. Permissions & Conversion
Ensure the files belong to the admin user and run the conversion logic. This prepares the files so DirectAdmin can read them.
chown -R admin. /home/admin/all_backups
(The conversion actually happens automatically during the restore process in modern DirectAdmin versions, provided the cpanel_to_da scripts are present).
3. Restore the Accounts
You can now restore the accounts via the GUI.
- Log in to DirectAdmin as
admin. - Navigate to Admin Backup/Transfer.
- Under "Restore Backup", locate the path:
/home/admin/all_backups. - Select the backup files you want to restore.
- Click Restore.
Important: Post-Migration Checks
cPanel and DirectAdmin handle MySQL username lengths differently.
The Issue: cPanel might allow
myusername_verylongsuffix, while DirectAdmin might shorten this to myusername_verylo due to a 16-character limit.The Fix: If a website fails to connect to the database after migration, check the
wp-config.php (or similar config file) and update the database username/password to match what is shown in the DirectAdmin MySQL setup.
JetBackup Users
If your backups were created with JetBackup, they do not contain the standard cPanel structure inside. You must convert these manually via SSH:
jetbackup=yes /usr/local/directadmin/scripts/cpanel_to_da/cpanel_to_da.sh /home/admin/user_backups/cpmove-USER.tar.gz /home/admin/converted_backups