Tag: fastcgi

MoinMoin wiki with Lighttpd 1.5

This took me a little while to figure out, so I’ll blog here to help others (and me, next time I need to do it and can’t remember how).

I use the MoinMoin wiki software to run a couple of wikis and they run under the Lighttpd web server. With the current stable Lighttpd (1.4) you configure it to use the MoinMoin fastcgi service a bit like this:


  $HTTP["url"] =~ "^/wiki" {
    fastcgi.server =  ("/wiki" => ( "mywiki" =>
      ( "host" => "127.0.0.1",
        "port" => 22000,
        "check-local" => "disable",
        "broken-scriptfilename" => "enable" )
      ))
  }

The new Lighttpd (currently in development, but to be version 1.5) has reworked the way you define fastcgi backends, and has lost the “broken-scriptfilename” option in the process. Without it, MoinMoin doesn’t see what wiki page you’re trying to visit, and can’t build new links properly. Luckily you can reproduce this feature with some proxy-core rewrites:


  $HTTP["url"] =~ "^/wiki" {
    proxy-core.protocol = "fastcgi"
    proxy-core.backends = ( "127.0.0.1:22000" )
    proxy-core.rewrite-request = (
      "_pathinfo" => ( "^/wiki(/.*)" => "$1" ),
      "_scriptname" => ( "^(/wiki)" => "$1" )
    )
  }

And your MoinMoin lives to be spammed another day.

Daemontools and Ruby on Rails

Dan J Bernstein’s (djb) daemontools is a set of programs to help you manage unix services. It provides a flexible, secure and convenient way of starting, stopping and sending signals to background processes. Combined with his ucspi-tcp tools, it can be used as an awesome replacement to inetd (it’s most often used in this way to run qmail, a secure and high-performance mta). It can be fiddly to set up and has a bit of a steep learning curve but I already use daemontools for various other stuff, so it was just natural for me to use it for Ruby on Rails deployment.

(more…)