After upgrading Lighttpd to 1.4.11 from 1.4.8 it was no longer working with my Ruby on Rails project saying it couldn’t find public/dispatch.fcgi. Well, it turns out they made this security fix which breaks relative paths typically used in lighttpd.conf:
2006-03-25 15:21:55: (mod_fastcgi.c.1022) execve failed for: public/dispatch.fcgi No such file or directory
2006-03-25 15:21:55: (mod_fastcgi.c.1048) the fastcgi-backend public/dispatch.fcgi failed to start:
2006-03-25 15:21:55: (mod_fastcgi.c.1052) child exited with status 2 public/dispatch.fcgi
2006-03-25 15:21:55: (mod_fastcgi.c.1055) if you try do run PHP as FastCGI backend make sure you use the FastCGI enabled version.
You can find out if it is the right one by executing ‘php -v’ and it should display ‘(cgi-fcgi)’ in the output, NOT (cgi) NOR (cli)
For more information check http://www.lighttpd.net/documentation/fastcgi.html#preparing-php-as-a-fastcgi-program
2006-03-25 15:21:55: (mod_fastcgi.c.1060) If this is PHP on Gentoo add fastcgi to the USE flags
2006-03-25 15:21:55: (mod_fastcgi.c.1356) [ERROR]: spawning fcgi failed.
2006-03-25 15:21:55: (server.c.834) Configuration of plugins failed. Going down.
For a temporary fix I just edited this file: lib/ruby/gems/1.8/gems/rails-1.0.0/configs/lighttpd.conf as well as the config/lighttpd.conf files in my existing rails project changing this line:
“bin-path” => “public/dispatch.fcgi”,
“bin-path” => CWD + “/public/dispatch.fcgi”,
I hope someone finds this useful!