Typically accounts are migrated from Plesk, Ensim, or DirectAdmin by using WHM >> Copy an Account From Another Server (or Copy Multiple Accounts/Packages From Another Server). There are times when this may not work. For example:
- Network connectivity between the source and destination servers may be poor, causing the migrations scripts to timeout
- There may be outstanding bugs in the migrations scripts which can only be resolved by migrating manually
Migrating accounts manually is a surprisingly simple task. All that needs to be done are the following:
- Populate /etc/trueuserdomains on the source server
- Package an account of your choice into a single file
- Copy the packaged account to the cPanel server
- Restore the account on the cPanel server
1. On the source server (e.g., Plesk, Ensim, or DirectAdmin), download the script that builds the list of accounts at /etc/trueuserdomains:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/updateuserdomains-universaland the script that packages the accounts (choose one):
Plesk
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-pXaEnsim
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-enXimDirectAdmin
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-da
2. Make them both executable:
# chmod +x updateuserdomains-universal # chmod +x pkgacct-*
3. Execute updateuserdomains-universal:
# ./updateuserdomains-universalNow there should be a plain text file at /etc/trueuserdomains that contains a list of accounts that can be packaged.
4. To package an account, select a user from /etc/trueuserdomains (we'll use "alice" in the example below), and run the pkgacct file that you downloaded in the previous steps (we'll use 'pkgacct-pXa' for Plesk from this point forward. If you are using Ensim, you would execute pkgacct-enXim, and if you are using DirectAdmin, you would use pkgacct-da):
# ./pkgacct-pXa aliceThis will package the entire account to a single file here:
/home/cpmove-alice.tar.gz
The amount of time that this process takes will depend on the size of the account. I would strongly advise running the "screen" command before packaging (and restoring) accounts. This will allow the package/restore processes to continue even if you get disconnected from the server.
Also, if the /home directory is too small, you can specify which partition to use like this:
# ./pkgacct-pXa alice /disk1where "/disk1" is only an example, and likely does not exist on your server. If it did, and if you ran that command, then you would end up with a file here:
/disk1/cpmove-alice.tar.gz
5. Copy the archive to the new server by running this from the source server:
# scp /home/cpmove-alice.tar.gz root@x.x.x.x:/homeor, run this from the cPanel server:
# cd /home # scp root@x.x.x.x:/home/cpmove-alice.tar.gz .6. On the cPanel server, after running "screen" (if you choose to use screen), run these commands to restore the account:
# cd /home # /scripts/restorepkg cpmove-alice.tar.gzNote that you can remove the /home/cpmove-${USER}.tar.gz files as soon as you are done with them if you'd like. This can help to free up some space on the /home partition.