Drupal Content Management System
- Procure a LAMP webserver environment similar to the one described above. Other platforms are possible (eg, LAPP, WAMP, WIMP, etc), but will not be discussed here. Read Drupal's system requirements for more information.
- Follow the standard Drupal installation procedures.
- Once Drupal is installed, check your site's system status (at http://yourdomain.tld/admin/reports/status) to make sure you have properly and completely installed Drupal. Fix any reported issues.
- Complete the basic Drupal site configuration.
- For basic settings, I recommend using clean URLs. You might wait to enable caching and/or disabling on-screen error reporting until you are ready to make your site live.
- Enable the optional core modules listed below.
- Install and enable the theme listed below, choose another existing theme, or design your own Drupal theme (Framework is a good theme on which to base a new design).
- Install and enable the contributed modules listed below. Any specific installation issues will be noted under each module listing.
- Set up a cron task that will visit your Drupal site on a regular basis to do basic housekeeping tasks automatically (eg, rebuilding the search index).
- Establish an OpenID identity with a provider (eg, myopenid.com, myvidoop.com) and use it to log in to your Drupal site. (Note: I don't recommend using Drupal's root administrative user as your daily blogging identity, so make a new user for yourself with reduced privileges.)
- Start blogging!
Optional Core Modules
Ultimately, all these core modules are optional, but some provide basic functionality you won't want to blog without.
- aggregator: Enables you to expose feeds (eg, RSS) from other sites on your site.
- blog: Blog enables multi-user blogging. If only one person will ever blog on your site, you don't need the blog module. However, even though I may be the only blogger on xolotl.org, I've enabled blog to establish handy navigation to my blog, and other modules may add useful functionality directly to blog.
- blog api: Allows users to post content using applications that support XML-RPC blog APIs.
- comment: Enables you or other users to comment on your blog entries (or other content).
- contact: Provides general site contact form.
- database logging: Logs and records system events to the database.
- help: Provides online help for Drupal features.
- menu: Enables your site to have navigation menus.
- openid: Enables OpenID authentication. Note that I did some user login, login block, register and password form templating to override stock forms provided by Drupal and this OpenID module. My goal: allow only OpenID authentication.
- path: Enables you to make URLs on your site more human and search-engine friendly.
- php filter: Allows embedded PHP code/snippets to be evaluated.
- ping: Alerts other sites when your site has been updated via ping-o-matic.
- poll: Enables simple polling functionality. I'll occasionally be asking my blog readers to vote on simple polls.
- search: Enables Drupal's built-in content search functionality.
- statistics: Enables Drupal's built-in usage statistics functionality.
- taxonomy: Enables you to categorize content with your own custom tags.
- update status: Checks the status of available updates for Drupal and your installed modules and themes.
- upload: Enables you to attach/upload files (eg, images, PDFs, etc) to content items.
Some of these contributed modules use additional required supporting modules where are not listed here.
- cck: Allows administrators to define new content types. I also use some custom CCK field type modules, that enable date, email, filefield, imagefield and link fields.
- flickrsync: Reads users's Flickr photo streams, and turns into nodes.
- imagecache: Dynamic image manipulator and cache.
- mollom: Protects against comment and contact form spam.
- pathauto: Enables custom, automatically-generated URLs for pages.
- print: Enables printer-friendly, PDF and email versions of pages.
- service_links: Automatically adds Digg, del.icio.us, reddit, Technorati etc. links to content items.
- simplemenu: Creates a menu bar that is displayed at the top of every page.
- tagadelic: Tagadelic makes weighted tag clouds from your taxonomy terms. See the one in the column to the right.
- tinymce: Enables a WYSIWYG rich text editor.
- views: Create customized lists and queries from your database.
framework: I'm using a slightly modified version of the Framework theme by Andre Griffin. My modifications are only to default to OpenID authentication and some minor CSS style tweaks.