Apache 資料一覧

SSIの「#exec cmd」が実行されず「an error occurred while processing this directive」エラーが出る

2012/4/16更新

対応バージョン: 2.4.1

以下のようにしてSSIの「#exec cmd」を実行しようとした。

<!--#exec cmd="/lib/foo.cgi"-->

しかしブラウザの画面には件名のエラーが、Apacheのログには以下のエラーがそれぞれ出力され、プログラムが実行できない。

AH01371: unknown directive "exec" in parsed doc <ファイル>

これはApacheのバージョンが2.4.1になり、利用する機能毎に明示的にモジュールをロードする仕様になったことに起因する。

SSIを有効化するにはhttpd.confにてmod_include.soをロードするが、「#exec cmd」を実行するにはさらにmod_cgid.soもロードする必要があり、ロードしていないと今回のような事象になる。

# SSI
LoadModule include_module modules/mod_include.so
# SSI(exec)
LoadModule cgid_module modules/mod_cgid.so

関連資料・記事