/fcgiwrap

Simple FastCGI wrapper for CGI scripts

Primary LanguageCMIT LicenseMIT

fcgiwrap

Info:Simple FastCGI wrapper for CGI scripts
Homepage:http://nginx.localdomain.pl/wiki/FcgiWrap
Author: Grzegorz Nosek <root@localdomain.pl>
Contributors:W-Mark Kubacki <wmark@hurrikane.de> Jordi Mallach <jordi@debian.org>

This page has been translated into Spanish language by Maria Ramos from Webhostinghub.com/support/edu.

License

This software is released under the MIT license. See COPYING for details.

Features

  • very lightweight (84KB of private memory per instance)
  • fixes broken CR/LF in headers
  • handles environment in a sane way (CGI scripts get HTTP-related env. vars from FastCGI parameters and inherit all the others from fcgiwrap's environment)
  • no configuration, so you can run several sites off the same fcgiwrap pool
  • passes CGI stderr output to fcgiwrap's stderr or FastCGI stderr stream

Installation

requirements

Makefile and configure script is generated by GNU autotools. Therefore you need the latter.

pkg-config is needed, else you may get AC_DEFINE errors.

fcgiwrap links to dev-libs/fcgi which can be obtained from http://www.fastcgi.com/ .

fcgiwrap also uses (but not requires) systemd for socket activation.

procedure

To install:

autoreconf -i
./configure
make
make install

fcgiwrap will be copied to /usr/local/sbin/fcgiwrap if you did not set --prefix for configure or DESTDIR for the makefile.

usage

Most probably you will want fcgiwrap be launched by www-servers/spawn-fcgi. Or you could use the author's Perl launcher - see the homepage for that.

There are two modes of fcgiwrap operation:
  • when SCRIPT_FILENAME is set, its value is treated as the script name and executed directly.
  • otherwise, DOCUMENT_ROOT and SCRIPT_NAME are concatenated and split back again into the script name and PATH_INFO. For example, given a DOCUMENT_ROOT of /www/cgi and SCRIPT_NAME of /subdir/example.cgi/foobar, fcgiwrap will execute /www/cgi/subdir/example.cgi with PATH_INFO of /foobar (assuming example.cgi exists and is executable).