性能の問題により実運用に適さないとしても、フィルタのプロトタイプ用の
環境としては
注: この gzip の例はデモ用です。実用的な実装は
filtername は定義するフィルタの名前を指定します。
この名前は後で
続くパラメータの順番は関係無く、それらは実行する外部コマンドと、
他の特性を定義します。cmd=
だけが必須のパラメータです。
指定可能なパラメータは:
cmd=cmdline
cmd=
キーワードは実行する外部コマンドを指定します。
プログラム名の後に引数がある場合は、コマンド行は引用符で囲む
必要があります (例えば、cmd="/bin/mypgm
arg1 arg2"
のように)。プログラムは
シェル経由でなく、直接実行されますので、通常のシェル用の
エスケープは必要ありません。プログラムの引数は空白で区切られます。
プログラムの引数の一部となる必要のある空白はバックスペースでエスケープ
できます。引数の一部になるバックスラッシュはバックスラッシュで
エスケープする必要があります。標準の CGI 環境変数に加えて、
環境変数 DOCUMENT_URI, DOCUMENT_PATH_INFO, and
QUERY_STRING_UNESCAPED がプログラムのために設定されます。mode=mode
mode=output
(デフォルト)
を使います。リクエストを処理するフィルタには mode=input
を使います。mode=input
は Apache 2.1 以降で利用可能です。intype=imt
intype=
が指定されていれば、フィルタは指定されていない
ドキュメントには適用されなくなります。outtype=imt
PreservesContentLength
PreservesContentLength
キーワードはフィルタが
content length ftype=filtertype
disableenv=env
enableenv=env
DebugLevel=n
DebugLevel
で DebugLevel=0
と設定するのと同じです。
数字が大きくなればなるほど、より多くのデバッグメッセージが
生成され、サーバの性能は落ちます。数値の実際の意味は
mod_ext_filter.c
の先頭近くの DBGLVL_ 定数の
定義で説明されています。
注: デバッグメッセージを Apache のエラーログに
保存するようにするためには、core のディレクティブ
LogStderr | NoLogStderr
LogStderr
キーワードは外部フィルタプログラムにより
標準エラー NoLogStderr
は
逆に保存しないようにします。この例では、フィルタの標準出力に書かれたメッセージは
Apache のエラーログに保存されます。