lighty's life

lighty developer blog

Prerelease of Spawn-fcgi 1.6.0 (Rc1-r16)

spawn-fcgi extracted into own project

There are several versions of spawn-fcgi (one in lighttpd 1.4.x, one in 1.5.x and one in cherokee), which makes packaging very hard (e.g.: debian packages spawn-fcgi from lighty as “spawn-fcgi.lighttpd” – making usage complicated as your scripts are probably just using “spawn-fcgi”).
Additionally, keeping the sources and bug fixes synchronized is just too much work (ok, the one in cherokee isn’t our problem :) ).
Therefore we decided to split spawn-fcgi into a new project which will start with version 1.6.0 (and will be independent of lighttpd releases or versions).

We plan to remove spawn-fcgi from lighttpd-1.4.x after the release of 1.4.22.

In case you would like to test a spawn-fcgi version with more features (options for chowning the socket), see here: (needs glib)

You can find the new project at

Important changes

  • Removed limits for -C phpchildren option, which now justs sets PHP_FCGI_CHILDREN if phpchildren >= 0 (default: ommited); php’s default is PHP_FCGI_CHILDREN = 0, which means that the master process is the worker process. (not the same as PHP_FCGI_CHILDREN = 1, which results in one master watching its child). Instead of using the -C option you can now just set the environment var before invoking spawn-fcgi.
  • Modified the log messages format



  • Separated spawn-fcgi from lighttpd
  • Remove limits for php children; per default the PHP_FCGI_CHILDREN var is not changed (php defaults to no children, one worker)
  • Modified the log messages format (more details on errors, no source line)
  • Only try to connect to unix socket (not tcp) before spawning (fixes again #1575)
  • Only disconnect from terminal in fork mode (keep stderr/stdout open in nofork mode)
  • Allow numerical user and group ids for -u/-g (fixes #1141)
  • Ignore pid-file option in no-fork mode (instead of producing empty file)
  • Fix error handling for unix-socket-connect test