mobcode

Building a web site with a CMS - taking Drupal for a test drive

31 August, 2006

drupal

Drupal is an open-source, content management system (CMS) for creating web sites. It runs as a web app and provides web pages to build a web site. Users can create and upload content as well as configure the site. It runs with a database like MySQL and a web server like Apache.

If you are familiar with a blogging engine like WordPress then you will find Drupal familiar. It is like WordPress, with pluggable themes and feature plug-ins and similar basic flow of creating and publishing content. The difference is that it is more general than WordPress and is made to be used for more than blogging.

Installation

  1. Install Apache and a database like MySQL or Postgres. I used the servers installed by InstantRails, since I already had that on my system. (InstantRails works beautifully by the way. A no hassle way to install a big pile of software.)
  2. Download the Drupal archive and put the contents in your Apache document directory.
  3. Create a MySQL database for Drupal. (For me this involved running “mysql -u root” to connect to MySQL as the root user that InstantRails created.)
  4. Run the MySQL setup script to create the Drupal tables.
  5. Edit a Drupal config file to contain the database user, password, and database name.
  6. Edit the php.ini file to not show warnings. (Apparently the Drupal PHP files generate many warnings.)

Modules

You add features to your Drupal site by installing modules. These are plugins that add features to the system. For example there are plugins for uploading images, showing stock prices, managing buddy lists, and the list goes on. One of the main things to learn is that turning on a module is a many step process.

  1. Download the module archive and put the contents in your Drupal modules directory. The base Drupal install comes with many of the more common modules so this step is not always needed.
  2. Install all the other modules that the new module depends on.
  3. Enable the module in the Drupal “modules” screen.
  4. Turn on permission to let users use the new module in the “access control” screen.
  5. Configure the module through its “settings” screen.
  6. If the feature is a content editing feature then poke around in the content editing screens until you find a widget that corresponds to the new feature.
  7. If the feature is an end-user visible part of the site then enable and configure the display in the “blocks” screen.

After all that you hope that something shows up on the site that is sort of what you want.

First Impressions

When compared to directly maintaining a site it is frustrating to feel so removed from the nuts-and-bolts of rendering the site. For instance having files on a file system that contain the site content is very good. Drupal on the other hand (like all the other CMS systems I have seen) lock the content up in a relational database.

My sense is that if you are willing to just go with the way Drupal does things then you can create a great looking, full-featured site very easily. There are Drupal modules for searching a site, adding something like tags to site content, automatically maintaining a site menu, adding comments to content, and innumerable other add-ons. It makes no sense to recreate all of these features.

On the other hand if you have very exact ideas of what you want and how you want it to look then you will need to dig-in more and customize the themes and modules to do what you want.

On the upside there is an impressive list of themes and modules that other people have coded. We can use their work and focus on putting our content into the site.

When you first look at Drupal it is a bewildering pile of screens and options that make very little sense. After poking on it for a few hours you will start to get your head around it and it will start to make sense.

If you are involved with making web sites then you need to understand what content management systems are about. There are dozens of open source products that are listed and described at OpenSourceCMS. The best part of this site is that it has demo installations of numerous CMS products. So take one for a ride to see what it is about. If you have a bit more time then install a Drupal instance and build a site with it. You can’t beat first-hand experience for understanding products like this.

Comments (0)