In this series of Best Practice articles I talk about migrating websites and emails from a Plesk 11 run server to a Virtualmin run server. It describes in details the steps involved, including the eventual pitfalls and other thing I came across whilst doing it. Note that this documentation is addressed to people with medium expertise in linux/system administration.
Fed up with Plesk?
Since 2003 I have been using two brands of Dedicated Servers Control Panels: Ensim (RIP) and Plesk. So it’s died oh well, Ensim was an awful CP, never liked it, I liked Plesk (from 8 to 11) a bit more and it has been my selected Control Panel for many years. However the time has come to make way for a relatively new comer: Virtualmin or VM for short, a very mature and simpler CP indeed with a vibrant Community.
Deciding to select another Control Panel is a big decision, especially when your bottom line is at stake, so after having extensively tested and used VM for the last few months I finally decided to make the move, VM is slick, simple and easy to use, it’s like Ronseal, it does what it says on the tin.
Plesk who it is really for?
Less and less for me as I do not resell nor hosts 1000’s of websites, Plesk is probably best for that. However the latest incarnation of Plesk (at least as it was given to me by my service provider) is getting a little too much, some menus about “Business Management” which may be well made but I didn’t get the chance to try, it didn’t work and some serious problems with email servicing [off topic]not to mention all my scripts using sendmail.pm were denied access to smtp locally, apart for a few minutes when I changed the server var to the local IP, then it failed again, DC has no ideas!)[/off topic].
Most of my customers websites are not accessed via ftp often (the port is opened to a select few) all is done via web interface.
I stumbled upon Virtualmin by accident, I knew Webmin from many years ago and never really saw what to use it for, I then got a very cheap VPS with Ubuntu 11.10 (I am on now 12.04 writing this) and sourced Webmin to play about. It turned out that I should have not installed Webmin first but Virtualmin which is mentionned on webmin.com, installing Webmin before Virtualmin messed up. So I reset the VPS with the recommended OS of the day (CentOS 6 64) and installed Virtualmin via their archive.
Benefits of VM
The main benefits of Virtualmin, in my opinion, are as follow:
- Speedy community support
- Does not interfere with the native OS
- Good Integration with csf Firewall and Cpan and whatever else.
- Fast, uncluttered Interface
- Simpler Website / Email / User management (I don’t do resellers etc.)
- Direct access to the rest of the appliance with via Webmin
- Entirely customisable, add/remove edit any of the many, many available modules
Virtualmin install is a breeze, simply download the archive, unpack it and invoke the install.sh script, the rest is childs play. The OS of choice for me is CentOS 6 64 which is ready to be used with Virtualmin pretty much out of the box.
Migrating to VM from Plesk brings its own set of challenges, the main one is the websites “DocumentRoot”; Plesk puts everything in /var/www/vhosts, VM is a /home matter. So before migration it is to be decided whether set VM to have DocumentRoot pointing to /var/www/vhosts or keep the default, this could cause potential suexec conflicts, so I decided to leave VM with the default (/home). So the first thing to think about is to replace all absolute paths in all scripts (if any) from /var/www/vhosts to /home, second, a bog standard import of Plesk backups to VM, although the simplest and fastest way, causes major headaches; Plesk stores websites under /var/www/vhosts/domain.tld but VM [rightly] stores them under /home/username, where username is Plesk’s ftp credentials to log onto each websites, so unless you rename all ftp users to domain.tld in Plesk… this means that a Plesk backup import can be a bit of a headache.
If, like me, you’ve got a few dozen websites, the decision is to create all websites in VM manually with the administrative user name as the domain name (like example.tld) is what I will go for (you can always add the old Plesk username as a secondary account for your ftp customers if required).