CGI-FCGI(1)

     NAME
           cgi-fcgi - Bridge the HTTP Server Daemon's CGI protocol with the
           Perl FastCGI protocol

     SYNOPSIS
           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 character #.  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) family 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/sock/app /httpd/bin/app

          the effect is the same as executing

            /bin/cgi-fcgi -connect /httpd/sock/app /httpd/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 listening 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 environment 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 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 executable 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 repeats 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.

     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.