lighty's life

lighty developer blog

Lighttpd on Cygwin

I spent some hours in the airport of Hong-Kong and wanted to get the 1.3.x branch running on cygwin in combination with PHP via FastCGI. On the road I most often work under Windows on my Laptop and being able to really test it under every platform, even cygwin is a nice to have.

It was already spawned automaticly by the internal spawner after I had compiled PHP in cygwin myself with FastCGI support. The only thing missing was a working FastCGI handler. Debugging in cygwin is a lot harder than doing the same under Linux as the strace is tracing the emulated environment and not the native system calls:

$ strace —mask=syscall .libs/lighttpd.exe -D -f ./lighttpd.conf

Adding a bunch of log_error_write() statements in the mod_fastcgi.c code somewhen revealed what is really going on. I still wonder why it ever worked at all :)

changeset 343 is the final result of this debug session and will be part of 1.3.14 moving the ‘please send me FDEVENT_IN’ before we return with WAIT_FOR_EVENT. This also removes the ‘I got FDEVENT_OUT and don’t know way’ messages than sometimes appeared.