WordPress on lighttpd: Rewrite rules with WP Super Cache and WPtouch

As a few of my readers already know, this weblog is run by a WordPress 2.x installation on a lighttpd web server (on top of a Debian Linux host). I have also installed, among others, the following plugins for WordPress:

  • WP Super Cache — Serves a cached HTML version of WordPress pages instead of serving each page as PHP output for every single request. This speeds up loading time and reduces the web server load. A lot!
  • WPtouch — When a user is using a mobile device, e.g., an iPhone, iPod touch, Android phone etc., they will see a slightly different layout of this blog, particularly optimized for small screen sizes.

lighttpd does not understand Apache’s RewriteRules that are used for permalinks in WordPress. Therefore, you’ll have to come up with your own set of rewrite rules. Based on the rewrite.lua script initially written by Giovanni Intini, I have come up with a slightly modified version that takes the presence of the WPtouch plugin into account.

To install this script, perform the following steps:

  1. Download the latest version of the rewrite.lua script from my github project site.
  2. Place rewrite.lua in the root directory of your WordPress installation, i.e., the same directory where you find the WordPress PHP files such as wp-config.php.
  3. Update your lighttpd config file for the host running WordPress and include this command:
    magnet.attract-physical-path-to = ( server.document-root + "/rewrite.lua" )1
  4. Make sure the Mobile device support option of the WP Super Cache plugin is enabled and the Rejected User Agents list is up-to-date. You’ll find those options in the Settings -> WP Super Cache menu of WordPress once WP Super Cache has been activated.

The lighttpd host configuration should now look somewhat similar to this:

$HTTP["host"] == "myblog.com" {
server.document-root = “/srv/www/myblog/wordpress”
accesslog.filename = “/var/log/lighttpd/
myblog/access.log"
magnet.attract-physical-path-to = ( server.document-root + “/rewrite.lua” )
}

Restart lighttpd to put the changes in place. Check your error log for any strange entries. Check the WP Super Cache settings of your blog and try to view it from a mobile device or an iPhone simulator, e.g., iPhoney.

Let me know if you’d like to further improve the rewrite.lua code. Just go ahead, clone it from the github repository and start working on it! If you’re interested in writing your own LUA code check out the Programming in Lua book or the Programming in LUA website.

  1. This requires ModMagnet being set up for your lighttpd server. Follow the previous link if you need help installing it. []

iPod: Kopfhörerausgang defekt

Vor etwa einem Jahr ging der Kopfhörerausgang meines iPod Video (5. Generation) zu Bruch. Vom einen auf den anderen Tag konnte ich meine Musik nur noch mono (auf einem Ohr) hören. Wenn ich den Kopfhörerstecker bewegte, waren wieder beide Kanäle (links und rechts) zu hören, aber das Glück war leider nur von kurzer Dauer. 🙁

Schließlich hatte ich mich dann dazu entschlossen, den iPod zur Reparatur zu Podmod.de zu schicken. Dort wurde eine neue Kopfhörerbuchse (“headphone jack”) eingebaut und das ganze lief auch perfekt — bis vor zwei Wochen. Die Garantie auf die reparierten Teile ist natürlich inzwischen schon abgelaufen…

iPod Video

Es trat also genau das gleiche Problem wieder auf und ich stand nun vor der Entscheidung, ob ich den iPod jetzt noch mal zur Reparatur einschicken sollte (was wieder etwa 50 Euro kosten würde) oder ob ich nicht vielleicht sogar zu einem der schicken neuen iPods greifen sollte. Der neue iPod nano würde mir ja schon gefallen, wobei der Speicherplatz vielleicht ein bisschen mager ist, da ich viele Hörbücher und Podcasts mit mir herum trage und zumindest die Podcasts durcheinander und je nach Stimmung anhöre.

Aber jetzt hatte ich ja “gerade erst” viel Geld in die Reparatur des Kopfhörerausgangs (und den gleichzeitigen Austausch der Batterie) gesteckt und war ja mit dem iPod Video eigentlich ansonsten noch sehr zufrieden. Obwohl, so ein iPod touch hätte natürlich auch was. 🙂

Bei der Suche nach einer Möglichkeit, die Buchse selbst auszutauschen, bin ich dann aber auf eine grandiose Idee gestoßen: Apple bietet als Zubehör für diverse iPods auch eine iPod Radio Remote an. Diese wird über den iPod Connector angeschlossen. Direkt an der Fernbedienung wird der Kopfhörer eingesteckt — und damit umgehe ich das Problem der defekten Buchse.

iPod Video (plus iPod Remote and Shure in-ear headphones)

Mit “normalen” Kopfhörern wird das Kabelgewirr dann sicherlich etwas lang, aber meine Shure In-Ear Kopfhörer (SE 110) kommen ohnehin mit sehr kurzem Kabel (und einer Verlängerung daher), so dass das kein Problem darstellt. Die Fernbedienbarkeit des iPods hätte ich nicht unbedingt gebraucht, aber das ist ein nettes Feature. Toll ist auch, dass der iPod mit der angeschlossenen Fernbedienung als Radio zu benutzen ist, und das sogar noch mit RDS.

Und das Beste kommt natürlich ganz zum Schluss: die iPod Radio Remote kostet bei Amazon.de gerade mal knapp 30 Euro. Und sie funktioniert perfekt. 🙂

Partnerschaft.de grast sinnfrei Twitter-Feeds ab

Ein Google Alert (… ja, ich lasse nach meiner selbst googlen, denn ich will ja wissen, wo ich überall auftauche…) trug heute was Erstaunliches in meine Inbox:

Screenshot Google Alert

Moment… “Jean Pierre Wenzel aus Grub”? WTF?

Ein bisschen Surfen im Google Cache brachte dann das hier zum Vorschein:

Screenshot partnerschaft.de

Da möchte Partnerschaft.de wohl die eigene Link-Farm mit mehr Content füllen… Schade nur, dass das thematisch mal überhaupt gar nicht passt — es sei denn, wir ziehen alle schnell um oder gehen Partnerschaften mit unserem Boot-Loader ein… 🙂

P.S. Da die Frage gleich aufkam: Die hinreichende Schöpfungshöhe ist bei Tweets wohl nicht erreicht, daher sieht die urheberrechtliche Handhabe eher mau aus, sollte jemand sich durch die Verwendung seiner Tweets auf den Schlips getreten fühlen.

Build freetz on CentOS

Recently, I needed to build a newer version of the famous alternative software for AVM Fritz!Box routers: freetz (the main goal was to enable access to a NAS connected through a dynamic cable or DSL line using OpenVPN).

The only Linux machine I could access at that time was a virtual machine running CentOS 5.4, but it served its purpose very well.

Before you can build your own freetz image in CentOS, you’ll need to install the following RPM packages (if they are not already present on your machine) using yum (as root user):

yum install subversion gcc gcc-c++ binutils autoconf automake libtool make bzip2 ncurses-devel zlib-devel flex bison patch texinfo dos2unix unix2dos gettext expat pkgconfig perl ruby gawk python libusb-devel unzip

Now you can get the current freetz sources (see their download website for more details) and start building your own Fritz!Box image.