Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Simple FastCGI wrapper for CGI scripts

branch: master
README.rst

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.

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.

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).
Something went wrong with that request. Please try again.