Transferring accounts between servers can be a complicated process and it requires careful attention to detail on your part. If you have service with HostDime, we can take care of cPanel or Plesk transfers for you. Contact us if you are interested.
cPanel has a useful feature called the Transfer Tool that makes it somewhat easier to migrate cPanel accounts between servers. In order to use this tool, you'll need root (administrative) access to the cPanel server to which you are migrating accounts. You'll need some sort of user access on the remote server as well.
Note
cPanel supports transferring accounts from a variety of popular control panels, including:
- cPanel
- Plesk
- DirectAdmin
- Ensim
but for the purposes of this article, we're going to assume you are transferring accounts from another cPanel server with root (administrative) access.
To initiate a transfer of multiple cPanel accounts as root, you will first want to gather some basic information you'll need:
- Root login details for the destination cPanel server. This is the location where you want the transferred accounts to end up.
- Root login details for the source cPanel server. This is the location where the accounts are migrating from.
- A list of all of the accounts you need to transfer (unless you plan on migrate all of them).
- A list of hosting packages you want to transfer from the source to the destination server (if any).
Once you have this information, you can initiate the migration process using the Transfer Tool in cPanel on the destination server.
- Log into WHM on your destination server as the "root" user. The login address usually looks something like: https://your.destination.server/whm
- When you are prompted to log in, enter the username as "root" and whatever the root password is for your destination server.
- Once you are logged in as root, click into the sidebar search box near the top-left of the screen and then start typing in "transfer tool" and click on the Transfer Tool item in the Transfers section of the WHM sidebar.
- In the main section of the WHM interface, the Transfer Tool will appear. The first piece of information you need to enter is the Remote Server Address. This can be a Fully Qualified Domain name (FQDN) like servername.domain.com or the IP address of the source server (the location the accounts are being migrated from).
Next, enter the source server's SSH port. cPanel automatically fills in the default SSH port of 22, but you should change this if needed to whatever custom SSH port the source server uses.
Important!
If you are using a firewall on your destination server (the one you are currently logged into WHM on) then you need to make sure outbound connections via TCP and UDP are enabled on the port you specified above or you won't be able to connect to the source server to transfer accounts.You now need to enter your source server login credentials. In the case of this article, you'll need to have the source server root (or wheel) user login details (or SSH key). Select one of the tabs below to learn what you'll need to specify.
- Transferring data from accounts you don't trust could potentially cause some security issues on the destination server. cPanel has the ability to try to stop transferring content that it thinks might be problematic. This feature isn't considered foolproof and isn't enabled by default. You should read over https://go.cpanel.net/insecurerestoreaccount before deciding whether or not to check the box next to Restricted Restore.
The Advanced section isn't something that most people will need to make changes to. You should make sure you know what you are doing before making any changes here.
- When you are sure you've entered everything correctly above, you can click the Fetch Account List button and your destination server will attempt to make a connection to the source server and pull down some account information. This won't actually start any account transfers.
The process of fetching account details may take some time, so be patient. Once it is complete, the screen will change to display some information about the accounts and services on the source server. Here's a sample of what the new screen looks like (click to view it full-size):
If the connection fails, please check the details you provided above to ensure they are correct and check your firewall to make sure that inbound and outbound connections are permitted on the remote SSH port you specified.As part of the process of fetching account information from the source server, the Transfer Tool will also attempt to compare the cPanel versions on the source and destination servers (assuming the source is also running cPanel). If a discrepancy is noticed, the Transfer Tool will inform you at the top of the screen in a yellow box.
The Transfer Tool has the best chance of success if both servers are on the same major version of cPanel. If that isn't possible, that is fine. The Transfer Tool can handle the mismatch, just be aware that if you're moving an account from a newer cPanel server to an older one, some features and functionality won't be available to the account on the destination server. Also, some features of the Transfer Tool are not supported by old versions of cPanel.At the top of the Transfer Tool screen, there is a Service Configuration section. This section is entirely optional and most people will probably want to skip it. It is used to try to copy some (but not all) key server-level configuration from the source server to the destination server. If you are moving all clients and data from one server to another and you plan to retire the source server once the transfer is complete, then this section may be of interest to you, since it will make matching the two environments easier for you. If you are just moving some accounts and don't want to change the destination server's configuration, skip to the next step.
- The Packages section of the Transfer Tool shows you any hosting packages set up on the source server as well as what feature lists those packages use. If you don't already have those packages on your destination server, it is a good idea to transfer them. The Transfer Tool will still copy over accounts with the correct settings and restrictions from the source server even if you don't copy over the packages, but it will make changing those accounts more complicated after the migration is complete.
- At the top of this section, there is a search box that can help you find the specific packages you are looking for (which can be handy if there are lots of them). Start typing what you want to search for in the box and only the packages that match that will be displayed. If you want to clear your search and see all packages again, click on the X to the right of the search box.
- If you have lots of packages, you may navigate between pages or adjust the number of displayed packages per page using the Page Size drop-down menu on the top right of the Packages section. Changes will apply immediately.
- To ensure the Transfer Tool copies the packages you want, you'll need to check each of the packages. You can do that individually, or click the checkbox in the grey header just below the search box to select all of the visible packages. If you select a package with a name that already exists, you'll be warned about the conflict.
- The Accounts section lists all of the hosting accounts on the source server. You'll want to select each account you want to copy over just like you did with packages in the section above. Both sections have similar features, so we'll just focus on what makes the Accounts section different (click to view full-size):
- When you select an account checkbox, the Transfer Tool will verify if that account's username is unique on the destination. If you already have an account with the same name on the destination, you will be warned and you can choose to overwrite the existing account if you want.
- For accounts, you not only select which ones to transfer, but you also specify features to use or specific types of data to copy. The Transfer Tool automatically enables copying certain types of data for the accounts you select, but you can add or remove options as you see fit.
- Dedicated IP: This allows you to assign that cPanel account to a dedicated IP address if you want. The source account does not have to be on a dedicated IP address for it to be assigned by you to a dedicated IP address on the destination, but the Transfer Tool will attempt to detect if the source account is on a dedicated IP address and will automatically check this box in that case to ensure the account will remain on a dedicated IP address on the destination server.
- Reseller: This will show you who owns that particular cPanel account. Any account not owned by a reseller will be owned by "root." You cannot change reseller ownership during the transfer itself. If you need to change ownership, you will need to do it after the transfer is complete.
- Copy Home Directory: This copies the home directory files for the account (typically located at /home/CPANELUSERNAME). If you plan to manually migrate that data later, you can uncheck this item and the account will be created, but no home account data will be migrated. It is checked by default.
- Copy Reseller Privileges: This will copy over the reseller account permissions and settings from the source server to the destination server. This will be automatically checked if the user is determined to be a reseller. Checking this item does not make a regular cPanel account into a reseller if it isn't one already. You'd need to set that up after the migration is complete.
- Copy Databases: If you want the Transfer Tool to automatically copy over the account's supported databases from the old server to the new one, make sure this box is checked. This is checked by default. If you plan to manually migrate databases later or if the user doesn't want their databases migrated, uncheck this item.
- Copy Bandwidth Data: If this item is checked, cPanel will copy over the bandwidth usage information it keeps track of for that account. It is checked by default. If you'd prefer to give the user a fresh start, uncheck this item and cPanel will set the account's bandwidth usage to zero on the destination server.
- Express Transfer: If you enable this, it will make a number of DNS and redirect changes on the source server once the account has been successfully transferred. It will also suspend the account on the source server after successful migration. These changes will help to ensure visitors go to the new location for the account as soon as possible. You should review the information here if you plan to use this feature.
- Overwrite: If an account with the same cPanel username exists on the destination server already and you check the Overwrite option, the existing account on the destination server will automatically be overwritten by the account you are migrating from the source server. Only use this if you are certain the account on the destination server is the same as the one on the source server.
- If you are certain you've selected everything properly, you can click Copy to actually start the transfer process.
- The screen will refresh to show the transfer progress in real-time. The entire transfer process is multi-threaded (unless you reduced the transfer and restore threads to 1 in the Advanced section above), so this screen is divided into 3 areas that update independently. Transfer progress (fetching data from the source server), restore progress (copying the transferred data into the proper locations on this server) and a summary section at the bottom (click to view full-size):
- You don't have to keep this screen, or even your browser itself open until the transfer is complete. It will continue in the background now until you cancel it or it finishes. You can go back to the Transfer Tool option in WHM to view or abort an existing transfer and you can also use /usr/local/cpanel/bin/view_transfer tool to view the status via the command line if you prefer.
- The summary will show the success or failure of each item being transferred or restored. It will also show warnings for things you should be aware of that aren't a failure. For example, it will tell you if a feature enabled on the source server is disabled on the destination so it can't be enabled for the transferred account.
Congratulations, you've successfully transferred accounts from one server to another!