How To Choose An Open Source CMS
An anonymous reader writes "Content management specialist Seth Gottlieb has written an easy to understand how-to on selecting an open source CMS. Gottlieb is also responsible for the whitepaper 'Content Management Problems and Open Source Solutions' which summarizes 15 open source projects and distinguishes between open source CMS and proprietary software selection."
http://www.opensourcecms.com/
Two of the most popular and flexible open-source Content Management Systems are vi and emacs...
We had to choose between many CMS for our specialized site. There are many CMS out there. Our choice ended with slashcode. slashcode is hard to install and configure, but the thing is, we considered (other may think otherwise) it has a "killing feature" that was worthed the pain in the long run: slashcode's moderation system.
Different CMS shares a lot of features, but some features are unique from one to another and might influence your choice...
Animoog.org
No matter how many people tell me that "Foo" is the best CMS, the only way that I found to really get a feel for them was to test them out myself. That included setting something up, testing the setup, and testing my abilities at updating the code.
I settled on Drupal only because it was the "hot thing" at the time and I enjoyed the fact that you could put php code into "blocks" and have it run custom code w/o much hassle. At the time I wasn't all that much interested in working on the actual code so the "blocks" allowed me to get some of my bash shell scripts onto the site w/o doing too much hacking.
The problem with CMSes is that updating them is slow. With some of the rich ones out there you're waiting too long to make a simple post or add some content (Tiki Pro, feature rich as it is suffers from this a lot but so do Joomla, Mambo etc). I think that the future (not that it's really pertinent to this question) is something local, a client running on every editor's PC, like NetObject's nPower (if it's any good, haven't used it).
The easiest way to quickly filter CMS's is by looking at the navigation structure. Do you want a "tree" structure (like most corporate websites) or do you want a "module" (like slashdot, nuke and other community sites).
There are other choices that can quickly filter CMS's, but many of the choices have alternatives or can be hacked around. Only rarely will you find a CMS that can handle both navigation structures.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
I think the OpenSource CMS market is getting too flooded... Do we really need another PHP/MySQL CMS? I know some people who are developing a commercial CMS product. I think they are crazy, since there are PLENTY of free CMS packages out there. If there is not need for a full blown enterprise CMS, why would you pay for a proprietary "non-free" application? How about a list of Open Source Enterprise Content Management systems? That would defintely be a shorter list.
Please no. Wiki != CMS. I really hate the current trend of open source projects putting all their documentation in a wiki.
How to install SomeProject - This article is a stub, but you can help by writing it!
No thanks.
That being said, I like a comercial solution: ClearCase, (paired with ClearQuest) as it allows me to enforce a certain percentage of behavior through the tool. And when you have people who feel it's their duty to violate process because it "won't work" (they didn't write it) it's nice to have the tool lock them down.
Genius is one percent inspiration and 99 percent perspiration, which is why engineers sometimes smell really bad.
There's been an ongoing discussion about this same topic over at Macintouch.
Personally I'm a fan of the Zope / CMF series of content management systems; the built-in CMF is quite powerful and flexible (and actually fairly efficient -- don't be fooled by the slowness of some CMSs built on top).
There are many such systems. There are some in private use (like Boston.com and Saugus.net. There are also some commercial options (like Icoya). Most though are free and open source, like Plone, Infrae Silva, and Nuxeo CPS. Each has its own focus and tends to do certain things better than the others. Each has its own special plug-ins and extensions, but since they all utilize the same underlying base framework, it's usually a doable thing (although typically not trivial) to port a product from one to another.
The capabilities of Zope's built-in CMF are also good enough that it's not at all unreasonable to fashion one's own CMS on top of it if none of the existing products seem to suit one's own particular needs.
There are quite a few Java based open-source CMS like Magnolia (http://www.magnolia.info/en/magnolia.html), Apache Lenya (http://lenya.apache.org/ etc. An exhaustive list of Java based open-source CMS can be find here:e nt-systems
http://java-source.net/open-source/content-managm
My bullshit detector is making a hell of a lot of noise.
Security is a function of the developer, not the language. To be sure, some languages have inherent security features that can help, but if you honestly think it's that much more difficult to muck up a Perl program than a PHP program, I've got some land near Baghdad you might be interested in purchasing.
// This is not a sig.
I am going to put my plug in for Geeklog. http://geeklog.net/
I use is for the base of many commercial web sites, utilizing the WYSISYG (FCKeditor) page editor and the news manager. It provides an excellent frame work for developing sites on top of, especially if you need a basic website with some extras thrown in.
It also runs sites such as http://www.groklaw.net/ and http://worldmusiccentral.org/
By changing the templates or config to eliminate links to the parts you do not need, (example, links pages, polls, etc), you can use the user login, edit, and admin parts to allow your web clients to edit their own pages, saving you the trouble and saving them money in the long run. The templates are completely separate from the code, allowing you to design graphics for the site separate from the code.
Updates are pretty easy if you keep your custom code out of the main install, a process that is pretty easy if you put your code in lib-custom.php. The code is well written and clear enough for a person with basic php knowledge to hack if they like
The software is all php/mysql and run efficiently on most linux shared hosts. There are also a wide variety of plugins.
The forum and developers are responsive to support requests.
just my two cents from a fan of geeklog,
it is also available for demo at http://opensourcecms.com/
I'm about 3/4 through evaluating cms products for my small company. I've read about all the major opensource ones, and even went into the commercial realm. I personally installed/evaled 7 or 8 (I didn't always take notes, some were already losers )
Here are some things that greatly helped me:
There is NO awesome templating system. If you have web designers and you have programmers, don't expect something to drop into place with little hassle. We have been deploying html + mod_perl applications using a simple in-house templating system. This is actually elegantly simple compared to some of the systems I looked at. It's all very relative to the staff you have. Personally a JSP taglib solution works best for us (so far)
There is no one "best" system. People claiming X or Y is clearly superior are either not deploying CMS for a group of users, lack experience as a developer/designer/user, or are just crazy. I know of a Major Company(tm) who management told to the developers use X system for some inscrutable reason after reviewing a lead dev's evaluation list. While on paper X is great, there are a few very annoying problems for the template designers, and they don't have the mandate to go modify the code, which is open.
Part of the evaluation MUST include every level of person using the product. Developers,designers,managment (reports n such), and end users (archetypal secretaries). I tried to let people know what was happening a few times a week with my evaluations, keeping a blog would be great maybe. Other people accepting your choice is super-duper-key. I got some great feedback from docs on a few occasions that helped me steer my choice.
Get a clear set of requirements and wish list items established early on. CMS systems can be minimal or very very comprehensive, it's easy to get lost in nth's implementation of webDAV or whatever.
Blog systems may have elements of CMS in them, but are not (usually) full blown CMS systems. CMSmatrix.org and other great places for data lump all the products together. In my opinion there are about a dozen open source products that are clearly way beyond the blog.
Last piece of advice which you won't hear very often: if you think you may not need a CMS solution you probably don't! If you have a single site, with some updating you need to do frequently or maybe you want to have a team of designers working on it, check out subversion first and maybe that alone will give you enough of what you want. If you just need templating check out apache's tapestry or cocoon projects.
I have selected Drupal, myself. I have looked at almost every other CMS out there, and after installing packages, switching languages, and other types of systems-mutilation that some packages require, I've found that Drupal makes my life as a web publisher much easier.
Druapl is also very configurable, even without having to write any code at all. It is all done with PHP, Apache, MySQL, which most GNU/Linux distributions seem to have already on the distribution media. Install your favorite distro, and Drupal fits in quite nicely.
Zhrodague.net - I do projects and stuff too.
A CMS by definition is a content management system. As a result, it is crucially important to determine the content you want the system to manage and how you want the system to manage the content.
A few starter questions:
1. What content do I have or expect to have? (web pages? documents? discussion forums? image galleries?)
2. Where does this content come from? (departments? users? myself? Internet sources? databases? third-party apps?)
3. How should the system manage this content? (workflows? editors? fine-grained access control?)
4. How should this content be displayed? (xhtml/css? pdf? print/paper? cell phones? xml? rss?)
5. How much separation of content and design do you require?
6. How extensible should the CMS be? (in-house development? modular? out-sourced development? completely opensource?)
7. What are the administrative requirements? (*nix? mysql/postgresql? apache? php? python?)
8. What is the anticipated load and can the CMS manage that? (quite different from a 5,000 hits/day site vs 20,000,000 hits/day)
9. What is the estimated lifetime of the website? What changes to the site are forseeable and should be considered?
Assuming your doing something more than a personal blog site, most likely pre-existing workflow processes and organizational resources already exist and those should be analyzed when making a CMS choice.
Don't get overly focused on initial setup times. The cost of administration, development and resources will far outweigh the initial setup costs on all but the smallest of sites.
Another big reason that you see so many PHP vulnerabilities is that PHP is free and easy, and so lots of (frankly) amateurs pick it up and write wizz-bang apps with it. The reason I call them amateurs is that they really have no idea and usually don't even know or care to write code with security in mind. Many, perhaps most newbie programmers think that bugs are something that happen to other people who aren't as smart as they are.
So basically, you have some well-intentioned but not experienced person with a good idea, and they sit down and hack together an application while learning PHP at the same time. Do they even know the definition of "SQL Injection Vulnerability" - probably not.
And a lot of the issues that I see on places like bugtraq are application specific, and I usually haven't even heard of the app. "The PHP app, Lyrus Extreme version 3.2 has a remote exploit." In your head, you subconsciously tally that up as "one more PHP problem" and if someone is gathering statistics on PHP problems by searching bugtraq for the string PHP, this one will be counted. But really, it's not a PHP problem, it's just an amateur programmer.
Part of the evaluation MUST include every level of person using the product. Developers,designers,managment (reports n such), and end users (archetypal secretaries).
...
... (chances are this is all wrong);
This is so true. End user input is critical, they will make or break the project.
My dad (rest his soul) was lead programmer (maybe the only programmer, I dunno) for the Star Tribune newspaper, back in the seventies. I was a teenager at the time, he taught me about For-Next loops and so on. Along with the coding, he emphasized:
The smart programmer
(a) Listens and nods his head while Management says "We want this, We want that"
(b) Sits down with end users (secretaries, etc.) for a while, every day, staying out of their way but watching them work, and asking the occasional question;
(c) Figures out what the end users really want, need, will accept;
(d) Codes for the end user, then spins the thing so Management thinks they're getting what they (foolishly) asked for.
Dad called this "going native among the users" (he took his degree in anthropology).
-kgj
-kgj
I'm increasingly of the opinion that for all but the simplest of sites, there just aren't any good "off the shelf" content management systems, unless you have no problem with your site looking like the default installation of whichever CMS you chose.
Here's the logic:
1. A very basic site (read: a blog) with a very basic CMS is generally not hard to set up.
2. The technical issue: as sites get more complicated, the level of sophistication required by the user to install and maintain them increases. (In the extreme case, I submit Xaraya, a CMS so complicated that trying to create a site as simple as "I just want a page with our contact information on it!" becomes an exercise capable of inducing intra-cranial hemmorage). Additionally, any templating system required grows more and more arcane, until it is essentially indistingushable from the actual programming language in which it's written.For example: the easiest way of getting a Drupal site laid out and usable quickly is to use the PHPTemplate plugin - in other words, to just write PHP code. David Heinemeier Hansson, no stranger to controversy, went a step further than this and labeled general-purpose CMSes "pipe dreams," and said "I believe the time has come to mark a date in the not too distant future for celebrating the death of the general-purpose content management system." (Not like he doesn't have his own thing to push, but that's as may be. See also Jeff Veen's frustration with open source CMSes
3. The social issue: as the content management system grows more and more complicated, they become more and more intractable for the average end user. Responsibility for day to day site updates is pushed to the IT department, which is absolutely not where it belongs. (Once again, I give you the one, the only, Jeffrey Veen.)