Drupal is an open source content management system (CMS) that has gotten a great deal of attention recently, based not only on its powerful set of features but also its use on some extremely high-profile websites. So what makes Drupal so special that it’s running sites for entities like Yahoo, Warner Brothers Records, Mensa, Ubuntu, Linden Labs, The Onion, Forbes, AOL, and oh yes…the White House?
Drupal started as a BBS/forum/message board written by a single person, got a large number of enthusiastic followers, and became open source. But instead of descending into near-anarchy the way some similar projects have been known to do, the Drupal developers thought ahead calmly, and ended up with some interesting and useful standard features:
- Search Engine Friendly with configurable URLs.
- Security is integral to Drupal. Drupal was designed to be a secure application framework and even has a dedicated security team.
- International support for literally dozens of languages, including those reading right-to-left.
- Portably runs on Unix, Linux, Mac OS X, Windows, BSD, and Solaris under either Apache or IIS.
- Flexible user management, from authentication – which can be done externally through an LDAP server to keep corporate IT departments happy or using OpenID – to user profiles, role-based permissions, and other access control methods.
- Revision control lets you archive every edit to a page, if you like, so you can recover old content.
- Not just a blog that can be extended, basic Drupal can be used as a blog, a forum, or a wiki, a standard website, or all at the same time, with the ability to add (or not) comments, polls, and tags almost anywhere.
- Serious features for power users. Out of the box, Drupal has advanced logging to rival Google Analytics; support for multiple sites on a single server; a multi-level menu system; advanced taxonomy and search system; and caching/feature throttling to let the system respond well under heavy loads.
And on top of all that, Drupal has the flexibility and extendability of thousands of freely-available extensions, such as themes, modules, profiles, and even a complete e-commerce solution. So I’ll be examining Drupal in detail in this series of articles, similar to the approach I took in the WordPress series.
Getting Started with Drupal
Like most CMS projects, Drupal runs on LAMP (Linux/Apache/MySQL/PHP) systems, so if you already have a server set up, you could just download the current version and start unpacking. I already had enough extra stuff on my web server, so I installed Drupal on top of XAMPP for Windows for testing on my desktop system.
Since then, I’ve found there’s a much better way: you can download a complete, free ready-to-go system from Acquia that is meant specifically for testing and evaluation of Drupal on any Windows 32-bit or Intel Mac OS X system. It’s similar to XAMPP (in fact, they call it DAMP), but it’s preconfigured so you don’t have to play with it or install anything separate in order to get Drupal running.
Not to say that should be difficult, anyway. Like WordPress, Drupal’s installation and setup procedure is intended to be easy, and it is. Since it was all running on my own computer, I had to point my browser to 127.0.0.1 followed by the subdirectory that Drupal was installed in, which ended up as a URL of http://127.0.0.1/drupal-6.16/
In my case, Drupal was able to check on the validity and status of the MySQL database I told it I wanted to use, but it didn’t create the database itself. Luckily, XAMPP comes with the amazing phpMyAdmin administration program, so it took just seconds for me to create an empty database with the proper name. After that, everything happened almost like magic, and I quickly got to this main menu:
This doesn’t look too bad, right? Unfortunately, this is exactly where some new Drupal users lose faith, because by the time you go through those four steps, you will have visited a number of menus with a literally dizzying number of options, and you realize you will never be able to understand and configure all these options in time to deploy a website.
So I’m going to show you an easy way to jumpstart things so you can see some content on your site right away, and thereby have something to work with (we’ll learn how to do this in detail in the following article in this series).
Click on the “create content” link in Step 4. Now you’ll see a menu that offers you a chance to create either a page or a story. A page is a standalone entity; like a bare webpage, it lets you add whatever content you like, but it does still contain the “surroundings” of the particular sidebars, blocks, and other sitewide design features you’ve chosen elsewhere in Drupal.
A story, on the other hand, is what any blogging platform would call “a post”. So click on “story” and you can either make something up, or get some canned public domain text to fill it in quickly:
Scroll down to the bottom of the page, press the “save” button, and your story has now been saved as well as published to the front page. So your Drupal site is now up and running!