Forum Moderators: phranque
I'm currently running a dedicated W2003 Web server and would like to move to either a FreeBSD or Linux web server.
Before I continue, I have never used FreeBSD nor Linux and would like to get some input beforehand.
My current W2003 web server runs IIS, ftp server, mail server, web mail, mySQL and Firebird database servers, and custom cgi's written in C++.
I know that it is a large task, but at the moment I have these questions:
Is Linux (server not desktop) much easier to learn than FreeBSD for a person with intermediate experience in Windows servers? About how long would it take for an average person to get a grip on either OS given experience similar to mine?
I am interested in FreeBSD because I've read that it is very reliable, but if it is harder to learn and administer, I'll skip it.
I'm also interested in CentOS because it is supposed to be very reliable and I like the fact that there are not frequent updates to perform.
Finally, I'm interested in Ubuntu server because I've read that it is easier to learn than other Linux distributions and apparently has a large user community.
Thank you for your time,
Jason
I used FreeBSD in the past but it's very frustrating because not all open source tools and software readily available for Linux run on FreeBSD, but if I wanted to build a DIY firewall bridge I'd probably pick FreeBSD as it's the easiest for that sort of thing.
I actually use Redhat Enterprise which isn't free but keeping the server software completely updated is a breeze with "yum update" which downloads and installs all the updates automatically from the Redhat repository. Many use the free version of Redhat called Fedora but I'm not playing games with less than polished commercial grade software to run a business.
I've never used CentOS, Ubuntu and Debian, but Matt Cutts from Google is a huge Ubuntu fan if that makes any difference.
Not a heck of a lot of difference from them all IMO but I hope you like running a lot of command line tools!
You mention that not all open source tools and software readily available for Linux run on FreeBSD.
1) Is this due to a lack of ports to FreeBSD? Are these "open source tools and software" compiled programs (written in languages such as C or C++) that possibly include linux specific (or non portable) code?
2) Would it be safe to assume that script based applications written in PHP or Perl will not suffer the mentioned problem? For example, I am running Joomla, phpBB3, and AWStats under Windows and IIS just fine even though the vast majority of people run these packages on Linux and Apache.
3) Does any executable built for Linux run on any of the Linux flavors or does it have to be compiled under Ubuntu, or CentOS when used under those platforms for example? Is it safe to assume that an executable compiled under Linux will not work on FreeBSD or vice versa?
Thanks in advance,
Jason
I suggest you take renewed look at FreeBSD :)
Linux Binary Compatibility [freebsd.org], using Portaudit [freebsd.org] and Portupgrade [freebsd.org]
Caribguy, thanks for the links.
I didn't dislike FreeBSD, I just used it for a while, ran into some issues I didn't run into with RedHat, and stuck with RH. I just want a turn-key system, I don't really want to worry about recompiling, ports, nada.
I did the DIY OS thing when I was younger, now I'm much older and don't enjoy hacking through the junk, it either works out of the box or doesn't.
[edited by: jdMorgan at 1:41 pm (utc) on May 31, 2009]
[edit reason] Speling: "turkey" -> "turn-key" [/edit]
It's important to remember that all the BSD/Linux variants you have mentioned are equally capable of functioning as a web server running Apache and ancillary services. It is best, therefore, to pick one variant and learn it well.
Ubuntu is more of a desktop OS than a server one. On the server side, Ubuntu's pace of change is a little too rapid for my liking, so some of their choices for packages are a little too cutting-edge. In other words, you will get the latest versions, but the possibility of less stability. Ubuntu is a variant of Debian [debian.org], and the stable branch of Debian can often be a better choice. The downside to Debian is the opposite of Ubuntu - that you get older packages, meaning that upgrading to the latest versions to take advantage of new features is much harder.
Avoid Red Hat's "Fedora" - it's a perpetual beta with punishing upgrade cycles and scarce to non-existent support for older versions. It's a good desktop OS, but use it for testing purposes only when it comes to a web server!
The "industry standard" (or closest to that description) is certainly Red Hat Enterprise Linux (RHEL). As incrediBILL mentioned above, you get commercial (paid) support and excellent tools for keeping things up to date. CentOS is an exact replica of the equivalent RHEL version, but without the branding - so you get the same as RHEL, but you don't need to purchase the support. If you want "free" but like the RHEL approach, then CentOS is perfect.
My personal preference is Debian, because I'm used to it and know the way it works best. If you are switching from Windows and you like commercial backing, then I would absolutely go for RHEL though - it's perfectly tuned for the task of web-serving and you get support that is more than just newsgroups filled with grumpy RTFM Unix hackers ;)
I recommend downloading a copy of CentOS to try out locally first, switching to RHEL for your production server if you want the support.
RTFM Unix hackers ;)
You haven't seen grumpy until you hit the Zope groups...
Our FreeBSD server that hosts the websites also includes backend support: OS, (L)AMP, backups, etc. Don't think there would be enough time in a day otherwise. On the other hand, by becoming exposed to it, I have started learning and eventually deployed two servers for local use that do a bunch of useful things: SMB, VPN, mail, calendaring, site staging, etc...
That message had caught my eye because it were true, running cgi executables in FreeBSD would be highly efficient, something that I know not to be true in Windows. The cgi executable would essentially remain in RAM and would be reused over and over.
Another reason that I was very interested in this is that there are at least two open source databases that I know of that offer two distinct modes: a persistent single instance threaded mode that handles multiple database connections, as well as a non-threaded mode which utilize a single process for each database connection. In this second mode, keeping a single copy of the executable in RAM would mean that the computer would not have to start processes for each connection.
Anyway, probably too good to be true anyway, I couldn't find anything else to support that claim either.