<!-- XXX: Should have references to CGI definition/RFC -->
<!-- XXX: Should mention Options ExecCGI -->
-Any file that has the mime type <CODE>application/x-httpd-cgi</CODE>
+<p>Any file that has the mime type <CODE>application/x-httpd-cgi</CODE>
or handler <CODE>cgi-script</CODE> (Apache 1.1 or later)
will be treated as a CGI script, and run by the server, with its output
being returned to the client. Files acquire this type either by
having a name containing an extension defined by the
<A HREF="mod_mime.html#addtype">AddType</A> directive, or by being in
-a <A HREF="mod_alias.html#scriptalias">ScriptAlias</A> directory. <P>
+a <A HREF="mod_alias.html#scriptalias">ScriptAlias</A> directory.</P>
-When the server invokes a CGI script, it will add a variable called
+<p>When the server invokes a CGI script, it will add a variable called
<CODE>DOCUMENT_ROOT</CODE> to the environment. This variable will contain the
value of the <A HREF="core.html#documentroot">DocumentRoot</A>
-configuration variable.
+configuration variable.</p>
+
+<p>For an intruction to using CGI scripts with Apache, see our
+tutorial on <a href="../howto/cgi.html">Dynamic Content With CGI</a>.</p>
+
+<p>When using a multi-threaded MPM under unix, the module <a
+href="mod_cgid.html">mod_cgid</a> should be used in place of this
+module. At the user level, the two modules are essentially
+identical.</p>
<h2>Directives</h2>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_cgi</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<!--#include virtual="header.html" -->
+
+<H1 ALIGN="CENTER">Module mod_cgid</H1>
+
+<p>This module provides for execution of CGI scripts using an external
+CGI daemon.</p>
+
+<P><A
+HREF="module-dict.html#Status"
+REL="Help"
+><STRONG>Status:</STRONG></A> Base (unix threaded MPMs only)
+<BR>
+<A
+HREF="module-dict.html#SourceFile"
+REL="Help"
+><STRONG>Source File:</STRONG></A> mod_cgid.c
+<BR>
+<A
+HREF="module-dict.html#ModuleIdentifier"
+REL="Help"
+><STRONG>Module Identifier:</STRONG></A> cgid_module
+</P>
+
+
+<H2>Summary</H2>
+
+<p>On certain unix operating systems, forking a process from a
+multi-threaded server is a very expensive operation because the new
+process will replicate all the threads of the parent process. In
+order to avoid incurring this expense on each CGI invocation, mod_cgid
+creates an external daemon that is responsible for forking child
+processes to run CGI scripts. The main server communicates with this
+daemon using a unix domain socket.</p>
+
+<p>This module is used by default whenever a multi-threaded MPM is
+selected during the compilation process. At the user level, this
+module is identical in configuration and operation to <a
+href="mod_cgi.html">mod_cgi</a>. The only exception is the additional
+directive <code>ScriptSock</code> which gives the name of the socket
+to use for communication with the cgi daemon.</p>
+
+<h2>Directives</h2>
+
+<ul>
+<li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li>
+<li><a href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li>
+<li><a href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li>
+<li><a href="#scriptsock">ScriptSock</a></li>
+</ul>
+
+<hr>
+
+<H3><A NAME="scriptsock">ScriptSock</A> directive</H3>
+
+<p><A
+ HREF="directive-dict.html#Syntax"
+ REL="Help"
+><STRONG>Syntax:</STRONG></A> Scriptsock <EM>filename</EM><BR>
+<A
+ HREF="directive-dict.html#Default"
+ REL="Help"
+><STRONG>Default:</STRONG></A> logs/cgisock<BR>
+<A
+ HREF="directive-dict.html#Context"
+ REL="Help"
+><STRONG>Context:</STRONG></A> server config<BR>
+<A
+ HREF="directive-dict.html#Status"
+ REL="Help"
+><STRONG>Status:</STRONG></A> Base<br>
+<A
+ HREF="directive-dict.html#Module"
+ REL="Help"
+><STRONG>Module:</STRONG></A> mod_cgid</p>
+
+<p>This directive sets the name of the socket to use for communication
+with the CGI daemon. The socket will be opened using the permissions
+of the user who starts Apache (usually root). To maintain the security
+of communications with CGI scripts, it is important that no other
+user has permission to write in the directory where the socket is
+located.</p>
+
+
+<!--#include virtual="footer.html" -->
+</BODY>
+</HTML>
+