There are a great wealth of web server control panels available for server administrators. I’ll probably get heckled off stage by some readers, but I think that they are super convenient for the novice (and even the advanced) administrator. If you are inexperienced with configuring and compiling programs, setting up email accounts and linux users, ensuring service monitoring, securing access, or even setting up a virtual host for your web server, a control panel can make all of these configurations available to you in a few clicks or commands. Most every control panel has a monthly licensing cost, but you may find that these costs are well worth it for the convenience the panels afford. It just makes those things which are complicated or tedious so easy to do.
cPanel
The front runner in this category of control panels is called cPanel. WHM and cPanel, which are two parts of one program, are the root-level and user-level control panels put out by cPanel Inc, and written primarily in perl. If you have ever used a shared platform like Bluehost, GoDaddy, or Host Gator, you have probably used cPanel. It’s the most prevalent control panel in the world, with new domains being created every six seconds. cPanel is really great because it can help you with absolutely EVERY aspect of server control you might want to do as a server administrator. It is being constantly updated with new features and fixes, and is extensible with user-made plugins.
If there is any disadvantage, it is that it more or less completely takes over your server, meaning that installing programs outside of cPanel may break it, or you may find it to be completely impossible. Circumventing cPanel, similarly, will very likely break things, as it has its hooks in essentially every part of the operating system. But, if you relent and allow it to do its thing, you will find that you can fine tune everything from DKIM to FTP users to email forwarders to BACKUPS (sweet baby rays do I love backups) clustered DNS to traffic reports to automatic CMS installs to alternative database applications to… well on to infinity pretty much. The only thing you can’t do with it is put it on Windows.
Because of its immense popularity (and my own familiarity with it), the majority of this blog will likely remain geared towards cPanel to cPanel migrations.
Plesk
Plesk is the second major contender in the control panel arena, claiming that 50% of the top 100 hosting companies use Plesk. Plesk provides a lot of the same features of cPanel, though not quite as many, and setup can be a bit more confusing because of proprietary terminology.
Plesk’s biggest advantage is its compatibility with Windows servers. If you are dependent on IIS for some reason, then Plesk is likely for you.
There is another major reason I recommend sticking with cPanel instead of using Plesk; cPanel’s settings are primarily stored in flat files around the filesystem (though the location of those files can be less than predictable). Plesk, however, uses its psa
database, the structure of which changes from version to version (some tables get randomly capitalized or replaced), meaning that commands you formulate for extracting data in one version may not work in another version. Additionally, a crash of mysql means your control panel is done for.
Some of this blog will deal with migrating between Plesk Linux servers, but also with methods for moving from Plesk to cPanel.
Everyone Else
Wait, that’s it?
For the most part, every panel other than the top two are too rare to formulate exact migration methods for.
If you are using one of these other control panels, that doesn’t mean you are high and dry! Along with Plesk and cPanel sources, I’ll cover non-panel (or unmanaged) sources as well. There are generic procedures (FTP and remote MySQL, for instance) that you can follow to get information about your site and extract necessary data to have a successful migration, though it may not be as full-featured as panel-to-panel methods. These generic procedures will aim, because of my own experience, to place you into a cPanel server.