Building a website has never been easier. Gone -- mostly -- are the days of having to hand-code HTML and PHP scripts in order to get a slick, fully functional website, thanks to the capabilities of content management systems that do most or all of the heavy lifting for site creators.
There are boatloads of content management systems (CMSs) for serious site creators, but the most common for websites today are three open-source tools: Joomla, Drupal and WordPress. Actually, to call them "tools" is an understatement -- these are full-fledged platforms, with tens of thousands of add-on tools created by very active developer communities.
These applications have a lot of similarities. For example, all three are written in the PHP programming language, all three are licensed under the free GNU General Public License (GPL), and all three depend on the MySQL database to hold and manage the actual content within a website.
Drupal had comparatively sedate beginnings. Built by developer Dries Buytaert, the project was open-sourced in 2001 and eventually gained a following of community members that has made Drupal one of the most successful open-source projects to date, with a large ecosystem of add-ons and commercial vendors.
Both Drupal and Joomla are designed to enable users to build websites with template-based management, and both let users plug in add-ons that provide highly dynamic features, such as e-commerce, blogging with comments or mapping. In fact, any Web app feature you might think of should be available with Drupal or Joomla add-ons.
Of the three, Joomla is the newcomer to the CMS scene, first released in 2005 as a fork from the earlier Mambo CMS, which was owned by vendor Miro International. The trouble between the projects began in early 2005, when Miro established a non-profit Mambo Foundation (good) that pretty much kept all control of Mambo in the hands of Miro (not so good). A few months of arguments over the exact nature of Miro's interpretation of free software principles eventually led to the split of what would become Joomla from Mambo and the beginning of a vibrant community-based CMS.
Like Joomla, WordPress also began as a forked project in 2003, gracefully leaving b2, its parent project. WordPress actually has two implementations, which can confuse newcomers to the software. WordPress.com is a free service (not unlike, say, Blogger) that allows anyone to create blogs using pre-built themes and tools. (WordPress.com, along with Blogger, Tumblr and Posterous, will be reviewed in an upcoming roundup.) The other, the open-source WordPress CMS software, is the technology I will examine in this article. Initially, my inclination was not to include WordPress in this review. Past experience indicated that WordPress, while gaining complexity and flexibility, was still not quite up to speed with Drupal and Joomla. But after re-examining the WordPress ecosystem and tools, I decided to include WordPress in this shootout of the Big Three open source CMS platforms.
So which CMS is right for you?
It's a difficult question to answer. Apples and oranges are both fruit, but it's hard to quantify one feature or another that makes either better. The same holds true for Joomla, Drupal and WordPress. It's easy for site creators to be passionate about one CMS or the other, but from the outside looking in, it really looks like an apple and oranges comparison.
In the past, I've helped build sites in all three CMSes and I have found good and not-so-good features in each one. To get a better idea of what's going on with these platforms, I used each CMS to build a simple business website for Happy Flights -- a company devoted (somewhat maniacally) to making people's flight experiences, well, happy -- complete with a blog, static pages, forums and a marketplace for goods to be sold. Along the way, I discovered some interesting things that challenged my preconceptions and gave me a clearer picture of the pros and cons of each CMS.
Installing Drupal, WordPress, or Joomla is essentially a three-stage process: prepare a database for the CMS, download and uncompress the files for the CMS, then walk through a Web-based installation that completes the job.
Other ways to install
A note before looking at the end-stage installations of each CMS: If you don't want to worry about the installation, there are many ways you can install any of these three platforms on a Web server. Many Web host providers offer the option of selecting from a menu of CMS servers that can be directly assigned by the host provider to the domain or sub-domain you specify. No muss, no fuss. All you have to do is select what options you want, click a button and in about 15 minutes, you'll have a freshly installed WordPress, Joomla or Drupal server on your domain, ready to configure.
Another option is use a service like Bitnami, which provides open source servers for installation on native devices, virtual machines or even cloud-based servers using Amazon's Web Services. I have used Bitnami servers in all three situations, and the installation is flawless every time.
Of course, you have to install it on the right machine. For this article, I opted to use a straightforward LAMP (Linux, Apache, MySql and PHP) server, as plain vanilla as I could create.
Specifically, this was an Ubuntu 11.04 with Apache 2 and MySQL 5.5 installed. I used PHP 5 and installed a MySQL module for PHP too. I also had FTP server software installed on the same machine, as all three CMS platforms need FTP to upload and install add-ons such as plug-ins, modules and themes.
Once all the software was in place, I had to perform the next step: Create a database with MySQL with which the CMSs would communicate. If you're familiar with the command line on Linux, this is not hard to do, and indeed it's not hard on Windows, with plenty of documentation out there to walk you through the process. The important thing to do is make sure that your CMS has the right permissions on the system on which it's residing. Without those permissions, trying to upload files into the host file system from within the CMS can fail spectacularly.
Once the LAMP (or WAMP) server is configured and the MySQL database is prepped, much of the hard work is done.
For this article, I installed the latest stable versions of the platforms: Drupal 7.7, Joomla 1.7 and WordPress 3.2.1. Here's how each system's installation compared.
Pushing out a Drupal site was a little harder than launching the Joomla and WordPress sites, though not by much. There were actually fewer steps, but sometimes it was not entirely clear what the system was asking for. At my level of expertise, it was always a matter of "Huh? Oh!" and off I would go. Less-experienced users might get hung up by the requests for database location and usernames, though.
This brings up an important safety tip: When you set up your database, make sure you keep track of the password you gave your database user that's acting on behalf of the CMS. I didn't jot it down like I was supposed to and it took a bit of time to recover.
That wasn't Drupal's fault, however, and even though the steps in the Web installation were not as explicitly spelled out as those in Joomla and WordPress, there ultimately was no stress getting Drupal installed and the default opening screen open.
Joomla's installation steps were more spelled out and more numerous, which made the process feel just a smidge safer as I walked through it. This, admittedly, is a subjective call, but I appreciated having all the steps laid out for me in logical order.
The one key difference in installing Joomla was the request to install sample data in the new Joomla site, which is encouraged for beginners. Now, I'm of two minds about the inclusion of sample data, which in this case includes two fairly complete subsites (one for a park and one for a store) in the initial site.
First, if you are beginner, then these examples allow you to judiciously reuse the content, layout and templates for your own Web site. That's pretty much why the material is there. But -- and this is strong but -- if you have any experience with Joomla, then you will definitely not want to apply this sample data, because it will burden your site with a taxonomy of content and content categories that you probably will not want. Undoing all of these elements is possible, but time consuming, so think about building from scratch if you're comfortable with Joomla.
I decided to throw in the sample data, which is quite wordy, because I knew my site could work with the content.
WordPress has made a point about getting its installation process down to mere moments of your time. In fact, it says so right in the first and only WordPress installation screen, announcing, "Welcome to the famous five-minute WordPress installation process!"
There is little doubt that the "five-minute" claim is true to its word. The single installation screen enables users to get their WordPress site up and running fast. There's not a lot of configuration, though, which means that you have to start with a plain vanilla WordPress site every time you install. In many cases, particularly for newer users, this will be a blessing. More advanced users, however, will need to build from scratch. The use of templates copied from other sites, however, should mitigate this.
The installation differences between Joomla and Drupal are, really, negligible. My personal preference leans towards the explicitness of Joomla's install, but that's not much of a differential. More noteworthy is the option to include sample data in a Joomla installation, something that can be a big help in getting beginners started.
WordPress, however, wins hands down when it comes to installation simplicity. If that is something you need, then this is the CMS to use.
While installation of these content management systems are similar, the same cannot be said for their interfaces. Drupal, Joomla and WordPress each present their content in different ways and manage content under different paradigms, as well.
This is really the biggest gap between these three platforms, because the fundamental way in which they treat content is vastly different.
For Drupal, all content is contained within blocks, and the content's type (blog, article, product in a catalog) determines which block the content is displayed in.
Joomla lets you create content within categories too, but content is additionally tied to location on specific pages.
WordPress handles all articles as either posts in a blog or a page on the site, which is fairly intuitive for new users to grasp. Location of content and widgets is handled by dropping them within pre-set locations within a given theme.
Those are just some of the differences. Here are more.
Drupal's administration is handled by a master control bar that appears on the top of the screen whenever an administrator or super-user is logged onto the Drupal site. There isn't a "back-end" control screen, per se -- administrative pages appear as an overlay on the site, such as the Create Basic page screen.
The advantage here is that all of Drupal's controls adapt to the page you're on, so you don't have to "assign" actions to particular pages unless you're working on a site-wide activity. Indeed, the main Dashboard for a Drupal site is often bereft of features -- you can pick and choose exactly what controls and status messages can go into the Dashboard.
But this flexibility can also be a big obstacle for new users, since it's not always easy to see what's going on. The flow of Drupal's administration works nicely, once you figure it out. The learning curve for understanding how Drupal does things is sharper than for Joomla and WordPress, but the payoff is great: Overall, the administration interface in Drupal is much smoother and powerful.
The back-end of Joomla looks like what a site administration control panel should look like: A single set of segregated pages that collect all the administrative tools in one place.
Working in the Joomla controls is easy from the start. Articles are in Article Manager, images are uploaded and stored in Image Master and so on. For basic administration, everything seems to make sense.
But after working with it a while, it became apparent there were some problems with the system. Creating a page was easy, but having menu links for that page in more than one menu became a bit tedious, because each item in Joomla has to have a unique alias. So I couldn't copy a menu entry from one menu straight into another. It was little things like this that kept tripping me up in Joomla and not in Drupal. Joomla also crashed a couple of times while doing seemingly small tasks.
If you get used to these idiosyncrasies, you can make do, but as I did more complex activities, I found myself wishing I had the same ease of use I'd had in the Drupal and WordPress sites.
WordPress administration seems to be a hybrid of the other two CMSs. There is a central Dashboard, which focuses heavily on displaying information about the site. The displayed information can be customized to show what you want to see, which makes it useful for a fast survey and control session.
Like Joomla, working in the Dashboard is simple and intuitive. Posts, pages and multimedia content are all managed in their respective pages, and it's pretty easy to move content around and edit it.
On the surface, it may seem like a difficult choice between Alexa and Google Home, but once you look at...
Apple has to out-execute itself (and its rivals) every year to coerce millions of users to upgrade and...
Fitbit's aging Charge HR just received a major upgrade with Charge 2, and the new device pushes the...
Sponsored by Puppet
Sponsored by Connection
Starbucks recently introduced voice ordering via Alexa, Amazon's virtual assistant. After the initial...
The answer: Yes, and no. Here's how the two fitness-focused smartwatches compare.
Oracle has released a guide to help developers move from Java 8 to Java 9
As some industry experts wonder whether Apple will add wireless charging to its next iPhone, others...