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

       cgi-fcgi - bridge from CGI to FastCGI

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

       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

              #! /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

       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
       exits, 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
       application 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
       executable  file  appPath.  If nServers is omitted, the effect is as if
       the value "1" had been specified.  The processes share the single  lis-
       tening 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.

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

        (in Debian, /usr/share/doc/libfcgi?/*)

       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.

       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  1997/09/16
       15:36:26 stanleyg Exp $

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