Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 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-
fcgi.

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" for information on usage and redis-
tribution
     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 $


Want to link to this manual page? Use this URL:
<
https://man.freebsd.org/cgi/man.cgi?query=cgi-fcgi&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help