I've moved my wordpress blog from a hosted account on godaddy.com to a server that's running lighttpd on ubuntu. The move was more complex than I expected, so I thought I'd share some details for others...

  1. I already had lighttpd installed, but I followed these instructions to add php support to lighttpd: Lighttpd+PHP - Ubuntu Wiki.
  2. I followed these great instructions for installing wordpress: Installing Wordpress 3.0 on Ubuntu 10.04...
  3. I used wordpress import/export to export my data from the old wordpress install. The old install was version 2.8, but the file imported just fine into wordpress 3.0. Here are some good instructions from wordpress.com: Moving a Blog.
  4. I had to install all the plugins I wanted on my new install.  This required my wordpress install be owned by the www-data user, which lighttpd is installed as.  I did a sudo chown -R ww-data:www-data on the install directory.
  5. I migrated my links from the old wordpress install using the instructions from wordpress.com: Import-Export Links.
  6. Make index.php the 404 handler, i.e. server.error-handler-404 = "/index.php" per Setting up a Wordpress Blog on lighttpd.
  7. Add rewrite rules so that most urls in / gets handled by index.php per URL Rewriting for Wordpress and lighttpd.
  8. Update the permalink settings to use /%year%/%monthnum%/%postname%/

In the end, my lighttpd config looks something like:

$HTTP["host"] == "www.crobak.org" {
  server.document-root = "/var/www/www.crobak.org"

  server.error-handler-404 = "/index.php"

  url.rewrite-final = (

    # Exclude some directories from rewriting
    "^/(wp-admin|wp-includes|wp-content|gallery2)/(.*)" => "$0",

    # Exclude .php files at root from rewriting
    "^/(.*.php)" => "$0",

    # Handle permalinks and feeds
    "^/(.*)$" => "/index.php/$1"

I've also switched to the awesome new Twenty Ten 1.1 Theme by the WordPress team.