Drupal

Overview

Drupal is a powerful but complex open-source content-management system (CMS). If you know what you're doing, Drupal is fairly easy to set up. It is also extremely flexible and (I think) reasonably computationally efficient. (Drupal pages are generated dynamically by pages coded in PHP; Drupal data is stored in a SQL database.)

But Drupal suffers from a problem that plagues many open-source projects: because documentation is not sexy (coding is), the documentation is not great. 

Drupal is also difficult to configure because of the large number of different modules available, many of which do similar things. So setting up Drupal involves figuring out three things:
  1. what you want to do,
  2. what Drupal (and its modules) can do, and
  3. which of various methods you should use.
The best way to figure some of this out is to experiment with Drupal. You can do this in two ways:
  1. Install Drupal locally (or on a portable drive) using something like XAMPP (a Windows-based web-server platform).
  2. Install Drupal in the cloud using something like:
    1. Drupal Gardens — a consumer cloud-hosting service from Acquia Drupal and based on Drupal 7. Free tier available in addition to inexpensive plans.
    2. Pantheon — a cloud-hosting service aimed at developers with a free tier or expensive ones (starting at $100 month), but nothing in between. Pantheon offers many different Drupal distributions and is a good way for a tech-savvy person to try them out. The available distributions (2012-September) are:
      1. Drupal 6, 7, and 8 (preview release)
      2. Open Academy - designed for higher education
      3. Open Atrium - a project-management solution [perhaps a lousy one]
      4. Open Enterprise - a CMS with integrated marketing and engagement tools targeted at businesses, non-profits and other ventures
      5. OpenideaL - an "idea-management system" to analyze public opinion regarding products/services and identify trends
      6. Open Outreach - for grassroots, activist, and nonprofit groups 
      7. OpenPublic - specially designed for open-government goals
      8. OpenPublish - designed for the online news industry
      9. Panopoly - a Panels-powered distribution designed to be a base framework

Drupal vs. other CMSes

Back in 2009, when I first wrote this page, I thought that WordPress was not much easier to set up than Drupal. But WordPress has improved since then, and it's my impression that WordPress now has a clear advantage in terms of ease of use. That being said, Drupal is probably more powerful and customizable. I haven't tried many other CMSes, but I did put together a list of them.

One interesting development between 2009 and 2012 has been the proliferation of various Drupal distributions — versions of Drupal packaged with various plugins and aimed at particular markets. If a Drupal distribution meets your needs, you could avoid much of the headache in customizing Drupal. 

Resources

My notes

Other pages on this site contain my working notes about experimenting with Drupal and with other web-development tools.

Drupal-specific topics

[These notes are mostly in draft and are basically outdated by now (2012).]

  1. Basic Drupal installation
  2. Multi-site Drupal installation [not written yet]
    1. In general
    2. Installing the sample sites from the book Using Drupal and its associated website
  3. Drupal modules and features 
  4. Drupal themes
  5. Using Drupal as a wiki

Non-Drupal-specific topics

  1. Using XAMPP
  2. Using FoxyProxy for local development
  3. .htaccess files
  4. Unix file permissions