Control panels - Webmin v's cPanel
Introduction
Successfully managing a Linux web server, without any form of graphical interface, requires a considerable amount of system administration knowledge and confidence working on the command line. While it might not please the purists, the reality is, most people would prefer not to have to manually edit half a dozen configuration files every time they add a site to their server.
Instead, they will use a web-hosting control panel, which is a web-based application designed to provide a graphical front-end for managing a server. Most common tasks will be simplified, or even automated, to allow the easy creation of web sites, DNS entries, MySQL databases, and mailboxes for email services such as Sendmail and Exim, and much more.
There are many different web-hosting control panels available; some of them are free, but most involve payment of a license fee. But, which is the best? Of course, the concept of 'best' varies depending upon your requirements. In this article we will look at two popular web-hosting control panels, Webmin and cPanel, to help you decide which best meets your business needs.
Webmin
Webmin is a free, web-based control panel. It was primarily intended for Unix-like systems, with particularly strong support for Red Hat Linux, Free BSD and Solaris, but recent versions do include support for Windows – although with some limitations on functionality.
The basic installation is quick and easy, and it can be installed on most Red Hat and Debian based system using their package management systems, i.e. yum and apt, without any additional steps.
The base install of Webmin is essentially just a graphical interface for editing configuration files; there is very little automation of procedures. So, for example, to add sites to the server, you must still configure Apache, DNS, Sendmail, FTP, MySQL, etc, individually. Webmin just allows you to do this through your web browser, rather than using the command line. For a single site server, this isn't really a big problem, but if you plan to host multiple sites, it's a fairly slow and inefficient process.
Because of this, it's common to also install Virtualmin, a Webmin module designed to simplify the management of multiple hosts. Site creation includes much more automation, and creating a site using the Virtualmin wizard will automatically setup an Apache and DNS entry, and create a default email and FTP account. There are also simple additional steps to add databases, additional users and email accounts.
Virtually all server management tasks can be done via Webmin, without any need to use the command line. The base install includes a series of standard modules that allow cron jobs to be setup, firewall configuration, user quota management, etc, and many other common system administration tasks. In addition to this, there are a huge number of third-party modules that can be easily installed to expand the range of features.
Beyond it's own installation files, Webmin makes no changes to the host operating system. All administration tasks preformed through Webmin, whether manual or automated, use the existing file system. This means that Webmin can be uninstalled and reinstalled without effecting any of thesites or services that have been configured. It also means new applications and services can be installed, and existing ones upgraded, without any interference from Webmin itself. However, Webmin also doesn't automate any of the update processes, so new modules or software versions must be manually installed or recompiled.
Webmin has also sometime been criticized for not being the most attractive of control panels, and some resellers choose not to use it merely down to aesthetic considerations. However, Webmin does have several themes available for it, that can be used skin it. Probably the most popular is called 'StressFree', which is a 'Windows' styled theme. If you're comfortable with CSS, you can even create your own themes.
Due to the free, open-source nature of Webmin, support is largely community-based. This takes the form of an official forum and wiki, and numerous other unofficial web-based sources. Virtualmin is also available as a free, community-supported version, but users can also opt for Virtualmin Pro. This is based around a paid licensing scheme, which also includes a commercial support package.
cPanel
cPanel is a proprietary web-hosting control panel, designed for Unix-like systems. Like Webmin, cPanel does offer support for Windows, but this takes the form of a separate product called Enkompass.
It is a commercial product, with charges based around a yearly licensing model (with two or three year options also available). It is generally installed by the technical staff of either cPanel themselves, or by a licensed reseller – usually a hosting company, that will pre-install cPanel before releasing the server to a client.
The installation process heavily customizes the host server, and should only be run on top of a freshly installed operating system, as any existing data will be overwritten and lost. The resulting installation is so enmeshed in the host file system that it cannot be removed without reformating the hard drive of the server. This does also create some limitations on what applications and versions can be installed, as they must be cPanel compliant otherwise they may not install properly, and can actually break some core services.
However, this level of integration does provide many benefits. Unlike Webmin, cPanel heavily automates the site creation process, using a site creation wizard. The use of selectable themes and packages also allows many additional features to be automatically installed during site creation, greatly simplifying the process and allowing a fully featured site to be set up extremely quickly.
Updating versions or adding modules to both Apache and PHP is extremely straightforward in cPanel, using EasyApache. This allows new modules or updates to be run on-the-fly, or even rolled-back, with little to no downtime, and very little risk. MySQL can also be upgraded, but this process cannot easily be rolled-back, so it's best to make thorough backups before attempting it.
One of the big selling points of cPanel, from the perspective of a potential reseller, is the WHM – Web Hosting Manager. This allows the server's owner to resell web space, and then provide their clients with their own control panel – the WHM – with which to manage it. The WHM can be configured to allowed as much, or as little, functionality as the server's owner wants to allow. Anything from simple email access, to the ability to setup subdomains, databases, FTP accounts and redirects can be permitted or revoked via the WHM, allowing you to create any number of templated or bespoke packages for clients.
As is to be expected from a commercial product, cPanel has a slick and efficient look, and is easily navigated using a main menu for core topics, which then loads pages of icons for subcategories. This professional appearance has proven to be a selling point in itself.
The license also includes a support contract, which allows server owners to submit tickets to cPanel's support team. These are usually responded to very quickly, and the quality of support provided is very high. Servers purchased through a reseller, usually a hosting company, will generally not have direct access to this facility, but support requests will be submitted via the reseller, through their support contract.
In addition to this, there is official documentation available on-line, and a forum, both of which can often be used to resolve most issues.
Pros and Cons
Let's compare some of the features discussed above. As with the concept of which is 'best', something one person seems as a Con, might be seen as a Pro by someone else. It all depends on exactly what you require from a web hosting control panel. Below, we will look at four areas that commonly considered when choosing a control panel:
1. Cost
Viewed purely as an upfront expenditure, Webmin is clearly cheaper than cPanel, as it's free. However, the level of automation provided by cPanel - both in terms of creating sites and adding features to them, and updating and installing modules and services - makes managing a server faster and much easier. This time saved could translate as money saved, in the long run.
2. Usability
As with cost, cPanel's automation makes it much easier to use. You don't need a vast amount of technical knowledge to be able to set up and configure web sites, and many of the core services. By contrast, a core install of Webmin requires you to create and edit files in Apache, DNS, Sendmail, MySQL, and possibly others, to set up a site. While this is made easier by being done through a graphical interface, you still need to have a reasonable grasp of what files need editing and creating. Installing Virtualmin greatly improves the situation, but it's still not as fluid or straightforward as using cPanel and the WHM.
3. Flexibility
The benefits of automation and easy of use, can come at a cost of flexibility. cPanel forces a certain methodology to be adopted when using it, and while tasks and services can be performed outside of cPanel, this can often have less than perfect results.
As mentioned earlier, cPanel makes many changes to the underlying operating system. While this makes little difference to the web hosting experience, it does mean, if you want to install another application or another version of a service (upgrading PHP, for example), you will only be able to use those than are supported by cPanel. In the interests of server stability, cPanel only uses current stable releases of core services, such as Apache, MySQL and PHP. You cannot install older or beta versions.
Webmin makes no changes to the file system, so anything that can be installed on your host operating system, can be installed on the server without any interference from Webmin. This means old or beta release software or applications to be installed and run. This makes Webmin ideal for customization and configuration is a multitude of different roles, beyond that of a web server.
4. Support
Support for Webmin is largely provided by the Webmin community, via forums and wiki pages. Hosting companies that provide servers with Webmin installed usually offer configuration support for it, but any bugs will often have to be raised with Webmin's developers using a bug tracker form. Most of the bug fixes are handled personally by Webmin's creator and chief developer, Jamie Cameron, so it can take a few days to get a response.
If a more rapid, business critical response, is required, it may be necessary to purchase the commercial 'Pro' version of Virtualmin, which comes with a support contract.
cPanel's license includes a support contract, where any issues can be submitted to their support team via a ticketing system. Most issues raised with their support team are resolved very quickly, between minutes and hours, depending upon the issue; and the quality of the support is typically of a very high standard. There is also an official forum and some thorough online documentation, that makes it possible to fix a large number of problems without the need for contacting support.
Conclusions
In most cases, where a simple-to-use web server with high levels of support is required, cPanel is probably the best option. Although the initial cost is a little higher, due to the license fee, the higher levels of automation, and access to business critical support, more than compensate for this.
However, in cases where the server is going to be heavily modified, or run services or functions which are either not supported, or difficult to configure in cPanel, you may be better off using Webmin. The use of an unmodified filesystem may also appeal to the more technically savvy server owner, who wants to be more hands-on with running their server. It is also a good choice if you want to run a second server for specific services, i.e. as a database or mail server, and do not need the full functionality of cPanel server.