This is a hot topic, at least among nerds lurking about various tech forums around the 'net. Every nerd has their favorite distro, 72 reasons why, and are willing to stake their reputation on it. Basically, they are distro fan-boys. They argue, fight, start flame wars, and spread more confusion than actual fact in their attempt to support what they believe to be the best of all server distributions.
Really what it comes down to is preference. For the most part, all Linux distributions are built on the same foundation with the same software. Each distribution modifies the software somewhat, which is where the controversy comes in. So it is with some fear and trepidation I throw my hat into the ring.
I've picked three that I like and explored each. In the spirit of Open Source Software, I've only selected distributions that are free of charge and conform to current Open Standards. Each has it's ups and downs. Each fits one niche better than the other.
Description:CentOS is a fully open source version of Red Hat's Enterprise Linux. It takes out all the proprietary modifications and software and leaves the Open Source core intact.
Pros:STABLE, STABLE, STABLE! CentOS is rock solid stable. It only uses packages that are time tested and fully checked for security leaks. It comes with a fairly air tight SELinux configuration (OS level security) and has a good firewall set up from the get-go. CentOS also comes with some good graphical tools for administering your system.
Cons:The stability comes with a price. CentOS uses packages that are much older compared to other distributions. That means that new cutting edge features are not there. A prime example is PHP, the current release of CentOS defaults to the 5.1 versions. Magento, a lifeBLUE favorite, as well as many other great PHP applications require 5.2 to run properly. CentOS is also a pain to configure at times.
Conclusion:CentOS is the way to go if you need stability. Not so much if you need the latest packages and want to step quite a ways away from the default configurations.
Description:An up to date, customized distribution based on Debian (yet another distribution). It features easy installation of packages and many great tools to help you administer and configure your system.
Pros:Ubuntu is easy. It is built to be a user-oriented distribution that makes configuring and administering a Linux server less painful. It features an easily customizable version of the Apache 2 web server, extensive selection of commonly used third party applications like phpMyAdmin, and a powerful tool to keep your system up to date. It also now features AppArmor, which is touted to be a new and improved version of SELinux. All of these features work together surprisingly well considering how cutting edge the packages are.
Cons:Ubuntu has a VERY short support cycle for most of it's versions. They do have a version marked as "Long Term Support" which is also kept up to date, so this can be avoided. Also, since Ubuntu uses cutting edge packages, a sys admin has to be very diligent in keeping the server up to date to avoid security gaps.
Conclusion:Ubuntu is probably the best version for someone who is going to spend a lot of time administering and manipulating their server. Configuration is easy and it is simple to roll back changes if things don't go right. Ubuntu is a bad choice for "install it and leave it" servers (which isn't really a good idea, but people do it all the time).
Description:Most sys admins are probably shaking their heads at this one. Gentoo is hard to learn, often complex, and takes a great deal of time to configure. However, it allows an unparalleled ability to configure, change, and manipulate the software on your server.
Pros:Because of how the package system in Gentoo works, you can do nearly anything you need to do to the software and still use the package management to keep things up to date. With most distributions, Ubuntu and CentOS included, once you step away from standard packages and put in some of your own custom versions you cannot use the package manager for those packages. Not so with Gentoo. The package manager allows you to create and maintain your own customized versions of software. That means if you need a tweaked out web server with lots of custom hacks to support your web application, you can integrate it into the package manager and more easily manage new versions of the customized software you are using. Another great aspect is that Gentoo can have a very lean install. If you just want a file server, you can install Gentoo with the base system and the file server. Most other distributions you would have to uninstall many, many packages to get the same result.
Cons:Gentoo is HARD. It has a steep learning curve. It also takes a really long time to get a working system (it usually takes me at least a day to get one server up and running). Also, since it allows so much configurability you can break things very badly and have to start over. Lastly, if you don't know how to make Linux secure, your Gentoo won't be secure. You are responsible to install and configure the available tools to make Gentoo hardened enough to be an outward facing server.
Conclusion:If you need to customize, go with Gentoo. If you want to control every aspect of the server in detail, go with Gentoo. If you want easy, go somewhere else.
You have about a billion choices when it comes to distributions for your Linux server. It is worth the time to ask the following questions:
- What is most important for the server? Is it stability, cutting edge features, or configurability?
- How complex is the server configuration going to be?
- How much time are you willing to spend keeping my server up to date and healthy?
Oh...and ignore the distro fan-boys.