The LAMP Stack
The first thing you need to understand about any Linux based web server is that there are four fundamental services running. An operating system such as CentOS or Ubuntu Server. Software such as Apache or NGinx (LNMP) that will serve up the web pages. Software such as MySQL to manage the databases and software that will interpret the server side code like PHP, Perl or Python. There is even a Windows variation that uses IIS (Internet Information Services) which serves up windows based web applications and .NET code embedded in HTML. The rest of this article will be focusing on Linux based control panels.
Once you have the four basic services running you can start hosting websites and web applications. Unfortunately, by default all of the configuration needs to be done via the command line and can involve editing a large number of text files. Fortunately, there are a variety of packages available to help. Some of these packages require paid licenses, some of them are free.
The majority of the control panels we have used have a lot of things in common. Most of them provide an incorporated package that allows you to configure the firewall or offers support for you to install a package such as LFS. This allows very easy and quick manipulation including opening and closing ports and adding IP addresses to the allowed or blocked lists without manually editing and applying the rules yourself.
An incredibly useful common trait is the easy of configuring new domains. Most control panels allow you to create packages and templates that automatically create the relevant configuration files when applied.
Paid Control Panels
Paid control panels are generally a lot more powerful than what you would get with a free version and in our experience seem to be a lot more stable. We have experience with two of the major commercial control panels on the market at the moment; CPanel and Plesk. Currently all of our production web servers are using CPanel which uses WHM to manage and maintain the software and domains. Plesk doesn’t separate the management from user access instead opting for a combined panel for both administration and domain accounts.
CPanel and Plesk often come as part of hosting packages or are often offered as an add-on package. If your ‘VPS’ or ‘Dedicated’ package does not contain a control panel you can purchase a basic licence for around £20 – £30 per month and the installation is usually quite straight forward for a default setup.
CPanel only supports Red-Hat, CentOS, CloudLinux and Amazon Linux whereas Plesk supports a larger array of Linux operating systems as well as Windows.
Free Control Panels
We have been testing a couple of free control panels on our in house development servers. Due to the fewer sites being hosted at any one time we don’t need the power of a commercial product such as CPanel or Plesk so a free, open sourced option fits perfectly. The two main control panels we are using are Centos Web Panel (CWP) and Virtualmin. Virtualmin uses Webmin to control the operating system and software. We are currently using Virtualmin on our primary development server. Virtualmin has a lot of good features but wasn’t that easy to setup and configure. CWP on the other hand was extremely simple only requiring you to download and run one executable. CWP took care of the rest of the set and configuration of Apache and MySQL without any user input.
Virtualmin works similarly to CPanel and WHM with a separate administration area although this can be reached from logging into the Virtualmin pane. CWP on the other hand works similarly to Plesk with one combined panel.