Move a Website as Webhost in WHM/Cpanel
A simple concise explanation - so much of the documentation seems convoluted that it's hard to understand. If you are a webhost and you want to move a new account from another server, here are the easy instructions.
1. Backup the site from the original server and make a full copy. Make sure to backup databases and email settings too
2. Install the full backups of everything on the new server so that a full copy exists.
3. Park a spare domain on top of the new copy and make sure it all works properly before the move takes place.
4. Edit the DNS Zones on the New Machine so that it matches the DNS zones from the previous machine. Make sure the IP address is the IP of the original machine. This is important because at this point you are not technically hosting the site, you are just taking control of the nameserver part. Note: Make sure the mail setting is set to remote server.
5. Edit all DNS Zone entries TTL settings to 300 so that they will refresh every 5 minutes.
6. Now instruct the owner of the domain to update the Nameservers at the Domain Registrar to point to your machine. At this point the settings will slowly propogate over the internet and may take up to 48 hours to do so. Once it has fully propogated you now have full control over the Nameserver settings and DNS zones for this account but the hosting is still on the original server.
7. Now simply change the IP address of the DNS zones on your server and in 300 seconds (5 minutes) the hosting will now be on your machine. Make sure you also change the mail settings to local mailhost rather than remote. Now all email is being cleared on your machine too and no emails should have been lost in this process.
Congratulations - it was a seamless transition.