Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

spawn-fcgi.standalone(1) [debian man page]

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

NAME
spawn-fcgi - Spawns FastCGI processes SYNOPSIS
spawn-fcgi [options] [ -- <fcgiapp> [fcgi app arguments]] spawn-fcgi -v spawn-fcgi -h DESCRIPTION
spawn-fcgi is used to spawn remote and local FastCGI processes. While it is obviously needed to spawn remote FastCGI backends (the web server can only spawn local ones), it is recommended to spawn local backends with spawn-fcgi, too. Reasons why you may want to use spawn-fcgi instead of something else: * Privilege separation without needing a suid-binary or running a server as root. * You can restart your web server and the FastCGI applications without restarting the others. * You can run them in different chroot()s. * Running your FastCGI applications doesn't depend on the web server you are running, which allows for easier testing of other web servers. OPTIONS
spawn-fcgi accepts the following options: -f <path> Filename of the FastCGI application to spawn. This option is deprecated and it is recommend to always specify the application (absolute path) and its parameters after "--"; the fcgiapp parameter is directly used for the exec() call, while for starting the binary given with -f /bin/sh is needed (which may not be available in a chroot). This option is ignored if fcgiapp is given. -d <path> Change the current directory before spawning the application. -a <address> IPv4/IPv6 address to bind to; only used if -p is given too. Defaults to "0.0.0.0" (IPv4). -p <port> TCP port to bind to; you cannot combine this with the -s option. -s <path> Path to the Unix domain socket to bind to; you cannot combine this with the -p option. -C <children> (PHP only) Number of children to spawn by setting the PHP_FCGI_CHILDREN environment variable. Default is not to overwrite the envi- ronment variable; php will spawn no children if the variable is not set (same as setting it to 0). -F <children> Number of children to fork, defaults to 1. This option doesn't work with -n, have a look at multiwatch(1) if you want to supervise multiple forks on the same socket. -P <path> Name of the PID file for spawned processes (ignored in no-fork mode) -n No forking should take place (for daemontools) -M <mode> Change file mode of the Unix domain socket; only used if -s is given too. -?, -h General usage instructions -v Shows version information and exits The following options are only available if you invoke spawn-fcgi as root: -c <directory> Chroot to specified directory; the Unix domain socket is created inside the chroot unless -S is given. -S Create Unix domain socket before chroot(). -u User ID to change to. -g Group ID to change to. Defaults to primary group of the user given for -u. -U Change user of the Unix domain socket, defaults to the value of -u. (only used if -s is given) -G Change group of the Unix domain socket, defaults to the primary group of the user given for -U; if -U wasn't given, defaults to the value of -g. (only used if -s is given) SEE ALSO
svc(8), supervise(8), see http://cr.yp.to/daemontools.html multiwatch(1), see http://cgit.stbuehler.de/gitosis/multiwatch/about/ 26 March 2009 spawn-fcgi(1)

Check Out this Related Man Page

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) 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 /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 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 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 lis- tening 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 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. 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. 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 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 Page