cgi-fcgi

cgi-fcgi(1)                 General Commands Manual                cgi-fcgi(1)

NAME
       cgi-fcgi - bridge from CGI to FastCGI

SYNOPSIS
       cgi-fcgi -f cmdPath
       cgi-fcgi -bind  -connect connName
       cgi-fcgi -start -connect connName appPath [nServers]
       cgi-fcgi -connect connName appPath [nServers]

DESCRIPTION
       cgi-fcgi is a CGI/1.1 program that communicates with an already-running
       FastCGI application in order to respond to an HTTP  request.   cgi-fcgi
       is also capable of starting a FastCGI application.

       When you invoke cgi-fcgi as

              cgi-fcgi -f cmdPath

       then  cgi-fcgi  opens  the file at cmdPath and reads its arguments from
       that file.  cgi-fcgi will skip lines that begin with the comment  char-
       acter  #.  The first non-comment line should contain valid arguments in
       one of the other three forms.

       The -f form of cgi-fcgi is designed for Unix systems whose exec(2) fam-
       ily  of  system  calls  supports  the  execution of command interpreter
       files.  For instance, if a file with execute  permission  contains  the
       text

              #! /bin/cgi-fcgi -f
              -connect /httpd/root/sock/app /httpd/root/bin/app

       the effect is the same as executing

              /usr/bin/cgi-fcgi          -connect         /httpd/root/sock/app
              /httpd/root/bin/app

       When you invoke cgi-fcgi as

              cgi-fcgi -bind -connect connName

       the connName argument is either the path name of a Unix domain  listen-
       ing  socket  or  a host:port pair.  If connName contains a colon, it is
       assumed  to  be  host:port.   cgi-fcgi  performs  a  connect(2)   using
       connName.   If the connect succeeds, cgi-fcgi forwards the CGI environ-
       ment variables and stdin data to the FastCGI application, and  forwards
       the  stdout  and  stderr data from the application to cgi-fcgi's stdout
       (most likely connected to a Web server).  When the FastCGI  application
       signals  the  end of its response, cgi-fcgi flushes its buffers and ex-
       its, and the Web server completes the http response.

       When you invoke cgi-fcgi as

              cgi-fcgi -start -connect connName appPath [nServers]

       then cgi-fcgi performs the function of starting one or more FastCGI ap-
       plication  processes.   The connName argument specifies either the path
       name of the Unix domain listening socket that cgi-fcgi will create,  or
       is "localhost:NNN" where NNN is the port number of the TCP/IP listening
       socket that cgi-fcgi will create on the local machine.  (cgi-fcgi  will
       not  create  processes on remote machines.)  After cgi-fcgi creates the
       listening socket, it forks nServers copies of a process running the ex-
       ecutable file appPath.  If nServers is omitted, the effect is as if the
       value "1" had been specified.  The processes share the single listening
       socket.

       When you invoke cgi-fcgi as

              cgi-fcgi -connect connName appPath [nServers]

       cgi-fcgi  performs -bind and then, if necssary, performs -start and re-
       peats the -bind.  That is, cgi-fcgi first operates as  if  the  command
       had been

              cgi-fcgi -bind -connect connName

       If the connect fails, cgi-fcgi tries

              cgi-fcgi -start -connect connName appPath [nServers]

       and finally retries

              cgi-fcgi -bind -connect connName

       In this form, cgi-fcgi does not support TCP/IP connections.

ENVIRONMENT VARIABLES
       The usual CGI ones, but they are not interpreted by cgi-fcgi.

SEE ALSO
       FGCI_accept(3).
        (in Debian, /usr/share/doc/libfcgi?/*)

BUGS
       cgi-fcgi  doesn't  generate useful HTTP responses in case of error, and
       it generates no response at all when run as start-fcgi.

       On Digital UNIX 3.0 systems the implementation of Unix  Domain  sockets
       does  not work when such sockets are stored on NFS file systems.  Symp-
       tom: cgi-fcgi may core dump or may exit with status  38.   Work-around:
       store sockets in local file systems (/tmp often works) or use TCP/IP.

       On AIX systems the implementation of listening sockets does not support
       socket sharing, and the standard FastCGI  application  libraries  can't
       synchronize  access  to  AIX listening sockets.  Work-around: Don't use
       the nServers argument on AIX.

HISTORY
       Copyright (c) 1996 Open Market, Inc.  See the file "LICENSE.TERMS"  for
       information  on  usage  and redistribution of this file, and for a DIS-
       CLAIMER  OF  ALL  WARRANTIES.   $Id:  cgi-fcgi.1,v  1.1.1.1  1997/09/16
       15:36:26 stanleyg Exp $

                                  1997-09-17                       cgi-fcgi(1)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.