<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_cgid.xml.meta">

<name>mod_cgid</name>
<description>Execution of CGI scripts using an
    external CGI daemon</description>
<status>Base</status>
<sourcefile>mod_cgid.c</sourcefile>
<identifier>cgid_module</identifier>
<compatibility>Unix threaded MPMs only</compatibility>

<summary>
    <p>Except for the optimizations and the additional <directive
    module="mod_cgid">ScriptSock</directive> directive noted below,
    <module>mod_cgid</module> behaves similarly to <module>mod_cgi</module>.
    <strong>See the <module>mod_cgi</module> summary for additional details
    about Apache and CGI.</strong></p>

    <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, <module>mod_cgid</module> 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 instead of
    <module>mod_cgi</module> whenever a multi-threaded MPM
    is selected during the compilation process. At the user level,
    this module is identical in configuration and operation to
    <module>mod_cgi</module>. 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>
</summary>

<seealso><module>mod_cgi</module></seealso>
<seealso><a href="../suexec.html">Running CGI programs under different
    user IDs</a></seealso>

<directivesynopsis location="mod_cgi">
<name>ScriptLog</name>
</directivesynopsis>

<directivesynopsis location="mod_cgi">
<name>ScriptLogLength</name>
</directivesynopsis>

<directivesynopsis location="mod_cgi">
<name>ScriptLogBuffer</name>
</directivesynopsis>

<directivesynopsis>
<name>ScriptSock</name>
<description>The filename prefix of the socket to use for communication with
the cgi daemon</description>
<syntax>ScriptSock <var>file-path</var></syntax>
<default>ScriptSock cgisock</default>
<contextlist><context>server config</context></contextlist>

<usage>
    <p>This directive sets the filename prefix of the socket to use for
    communication with the CGI daemon, an extension corresponding to
    the process ID of the server will be appended. 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>

    <p>If <var>file-path</var> is not an absolute path, the location specified
    will be relative to the value of
    <directive module="core">DefaultRuntimeDir</directive>.</p>

    <example><title>Example</title>
    <highlight language="config">
      ScriptSock /var/run/cgid.sock
    </highlight>
    </example>

</usage>
</directivesynopsis>

<directivesynopsis>
<name>CGIDScriptTimeout</name>
<description>The length of time to wait for more output from the
CGI program</description>
<syntax>CGIDScriptTimeout <var>time</var>[s|ms]</syntax>
<default>value of <directive module="core">Timeout</directive> directive when
unset or set to 0</default>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context></contextlist>
<compatibility>Available in httpd 2.4.10 and later; in prior releases no timeout was applied</compatibility>

<usage>
    <p>This directive limits the length of time to wait for more output from
    the CGI program.  If the time is exceeded, the request and CGI are
    terminated.</p>

    <example><title>Example</title>
    <highlight language="config">
      CGIDScriptTimeout 20
    </highlight>
    </example>

</usage>
</directivesynopsis>

</modulesynopsis>
