Essentially, these systems all manage a database containing your content, providing a method of input (usually Web-based), and outputting Web pages from the database according to the specifications in templates and configuration files. The fancier systems feature support multiple output formats, access and version control, and are built around the concept of publication "workflow," as you'd see in the busy production area of an old-fashioned print publication.
You can always build your own CMS, or resist having one altogether -- a few people still publish personal blogs in static pages of hand-coded HTML, while others rely on tiny homemade hacks with command-line tools such as
procmail -- but chances are you're better off using one of the dozens of open source CMS solutions available.
What to look for
When you're considering a CMS, some of the first questions to ask include:
- How is it licensed?
- What's the language/environment?
- How long has it been around?
- Is it actively developed?
- Who's using it?
- Is there support?
Almost every CMS home page promises you that it's the answer to everything, but the quickest way to get an idea of what it can really do is by looking at how other people are using it. When evaluating a CMS, follow the links to sites that actually use it -- you'll see that Mambo, for instance, has a lot of good-looking small business sites. Most CMS home pages will provide a list of sites, but not every CMS has its own design magazine, as is the case with Textpattern.
Make sure the software is still being developed. It's also good to know if it has been around for a while, or if it's a brand-new project that just made its 1.0 release last week. And if yours is a commercial venture, make sure that some kind of support is available. Bricolage, for example, has a commercial support venture by its principal author, while the TYPO3 Association maintains a list of consultancies that provide support for their software.
Choosing a CMS is like shopping for a car, or picking out a text editor -- you can get a good idea of what you might like by reading about it and taking a look at feature lists, but that gets overwhelming fast. You won't really know what's right until you actually try a few of them.
Fortunately, there's an easy way to do that. The Open Source CMS site lets you demo a working default installation of just about every open source CMS system in existence, giving you two-hour access to a complete demo of more than 100 systems.
Which is the right one for me?
Here are some of the best Linux-friendly open source options, sorted for a number of purposes:
"It has to have these features..."
One of the first ways to narrow down your choices is to list out your necessary feature requests, such as SSL, FTP access, or load balancing. CMS Matrix not only has a thorough list of such features tallied for every major CMS, but it lets you compare up to 10 of them side-by-side.
"Does it speak my language?"
To find what's out there in your own favorite language, check the Open Source Content Management System List. Here you'll also find interesting systems such as the fabulous Daily Chump Bot, which lets you publish a collaborative weblog via an IRC channel.
"I want the site to look just like ..."
If you already have a favorite site in mind that has a structure or a feel you're going after, that makes it easy. Find out what they're using.
"I just want to blog."
You're not going to build a huge portal site in a day. Such systems generally have a huge install factor, and take time to get you configured and moving. There's a few exceptions, such as Blosxom, which can get you started in less than 15 minutes. Plone is noted for its ease of installation and quick use out of the box (it has good documentation, too).
But if you just want a simple blog, then you can cross a lot of these systems off your list, since you won't be needing the collaborative features that many of them have. Scheduling can still come in handy -- if you're planning a weekend away from the net, it's nice to be able to write up several entries in advance and have them go live automatically at preconfigured times.
"But I'm no designer..."
That's what templates and themes are for.
All of these systems require you to make design choices, but they each provide a default, out-of-the-box look. You want a system that gives you a good choice of themes or templates.
"HTML is not an option!"
Then you're in luck, because with many of these systems, you don't need to know tags (at least when you're entering content). In particular, OpenCms is good at converting text to HTML, WebGUI lets you edit it visually, and Textpattern's editor, Textile, beautifully converts text to HTML with an emphasis on good typography.
"I want to customize everything"
Too many CMS environments aren't customizable enough. Some say that every site made by such-and-such a system looks identical -- the same page layout, site structure, URL encoding schemes, and all the same features and components.
Customization is more than picking themes. Good open source CMS packages will have a user-contributed library of routines and customizations. TYPO3, one of the most sprawling CMS packages (it famously takes months to get it going) has hundreds of extensions, while Drupal has similar modules.
"I'm planning a news site / humongous portal / discussion forum"
Some of these systems are more suited to a particular type of site. XOOPS, for example, is great for portals, while Cofax excels at online newspapers (all of the Knight-Ridder publications are published with it). And it has an invaluable feature for newspaper-style Web publishing: articles may be mapped to any number of sections, avoiding the hierarchy trap that happens when you have an article that fits equally well in multiple categories but must be filed in only one.
Another good one in this category is Apache's Lenya, which supports WYSIWYG editing, multiple authors, multiple servers, and scheduling.
While Geeklog is good for newsblogs with community forums, Mambo excels at smaller sites. If you publish both print and online editions, look at Bricolage -- it can output in different formats, including PDF for print (which the project reports is used by many pro publications, including Macworld).
There are a lot of good open source options available for implementing a CMS. While all of the systems operate on essentially the same principles, they vary greatly in the details. Selecting the right one for your project is a matter of knowing what to look for, matching your needs and priorities, and then trying several.