<?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:1673947 (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>