Go to main content

man pages section 1: User Commands

Exit Print View

Updated: July 2017
 
 

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

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 FastC-
GI
     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/root/sock/app /httpd/root/bin/app

     the effect is the same as executing

         /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 do-
main
     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
     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 speci-
fies
     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 listen-
ing 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-fc-
gi.

SEE ALSO
     FGCI_accept(3)

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  Do-
main
     sockets  does  not  work when such sockets are stored on NFS
file
     systems.  Symptom: 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  lis-
tening
     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 DISCLAIMER OF ALL WARRANTIES.
     $Id: cgi-fcgi.1,v 1.1.1.1 1997/09/16 15:36:26 stanleyg Exp $


See for descriptions of the following attributes:

+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
+---------------+------------------+
|Availability   | library/fastcgi  |
+---------------+------------------+
|Stability      | Uncommitted      |
+---------------+------------------+

This  software  was  built  from  source available at https://ja-
va.net/projects/solaris-userland.  The original community  source
was      downloaded     from      http://www.fastcgi.com/dist/fc-
gi-2.4.0.tar.gz

Further information about this software can be found on the  open
source community website at http://www.fastcgi.com/.