<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
<!-- English Revision: 425124:1610512 (outdated) -->

<!--
 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>外部 CGI デーモンを使った CGI スクリプトの実行</description>
<status>Base</status>
<sourcefile>mod_cgid.c</sourcefile>
<identifier>cgid_module</identifier>
<compatibility>Unix のスレッド MPM のみ</compatibility>

<summary>
    <p>最適化が施されていることと、以下で説明されている追加の <directive
    module="mod_cgid">ScriptSock</directive> ディレクティブを除いては、
    <module>mod_cgid</module> は <module>mod_cgi</module> と同様の
    動作をします。<strong>Apache と CGI に関する詳細は
    <module>mod_cgi</module> の概要を読んでください。</strong></p>

    <p>Unix オペレーティングシステムの中には、マルチスレッドのサーバから
    プロセスを fork するのが非常にコストの高い動作になっているものがあります。
    理由は、新しいプロセスが親プロセスのスレッドすべてを複製するからです。
    各 CGI 起動時にこのコストがかかるのを防ぐために、<module>mod_cgid</module>
    は子プロセスを fork して CGI スクリプトを実行するための
    外部デーモンを実行します。
    主サーバは unix ドメインソケットを使ってこのデーモンと通信します。</p>

    <p>コンパイル時にマルチスレッド MPM が選ばれたときは
    <module>mod_cgi</module> の代わりに必ずこのモジュールが使用されます。
    ユーザのレベルではこのモジュールの設定と動作は <module>mod_cgi</module>
    とまったく同じです。唯一の例外は <code>ScriptSock</code> ディレクティブの
    追加で、このディレクティブは CGI デーモンとの通信用のソケットの名前を
    指定します。</p>
</summary>

<seealso><module>mod_cgi</module></seealso>
<seealso><a href="../suexec.html">CGI プログラムを違うユーザ ID で実行する</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>CGI デーモンとの通信に使われるソケットのファイル名の接頭辞</description>
<syntax>ScriptSock <var>file-path</var></syntax>
<default>ScriptSock logs/cgisock</default>
<contextlist><context>server config</context></contextlist>

<usage>
    <p>このディレクティブは CGI デーモンとの通信に使われるソケットの
    ファイル名の接頭辞を設定します。また、ファイル名にはサーバのプロセスIDが
    追加されます。ソケットは Apache が起動されたユーザ (通常 root) の
    パーミッションを用いてオープンされます。CGI スクリプトとの通信の
    セキュリティを保つために、ソケットの存在するディレクトリに
    他のユーザが書き込み権限を持っていないようにすることが重要です。</p>

    <example><title>例</title>
      ScriptSock /var/run/cgid.sock
    </example>

</usage>
</directivesynopsis>

</modulesynopsis>

