ESC

SSIを設定する。

新しいプロジェクトで、クライアントから、SSIを使用できる確認用サーバをたててください、と言われた。
しかし、うちの確認用サーバは、各クライアントごとにバーチャルホストを使っているので、サーバ全体でSSIを有効にするわけにはいかない。


そんなわけで、ちょこちょこ調べつつ。


バーチャルホストの設定部分は、


  AllowOverride authconfig limit
  Options Includes FollowSymLinks Multiviews
  Order deny,allow  # 基本的にアクセスを許可し、allowで明記されているアクセスを許可*1
  Deny form all    # すべての対象からアクセスの拒否
  Allow from 許可IP  # 許可IPからのアクセスのみを許可(それ以外からのアクセスは拒否)


  ServerName xxx.xxx.xx.xx
  DocumentRoot ドキュメントルート
  ScriptAlias /cgi-bin/ "cgi-binの該当ディレクトリ"
  Addhandler cgi-script .cgi
  Addhandler cgi-script .pl

とした。

AddType text/x-server-parsed-html .shtml
AddHandler server-parsed .shtml

これに関しては、はじめからサーバ全体で有効となっていたので、設定は変更せず。
該当ディレクトリにIncludesを付加し、IPでのアクセス制限を設けた。
ホントは、execコマンドのことを考えて、IncludesNoExecとしたかったんだけど、IncludesNoExecでは、ファイルのインクルードも使えなくなるということで、しかたなくIncludesに。


実際に運用が始まったら、BASIC認証での制限もかける予定。


【参考URL】

  1. Order ディレクティブ
    http://httpd.apache.org/docs/2.0/ja/mod/mod_access.html#order
  2. SSIを利用可能にする
    http://vine.1-max.net/apach-ssi.html
  3. SSIは許可するがプログラム実行(exec)だけは禁止したい
    http://www.itmedia.co.jp/help/tips/linux/l0498.html
  4. IP認証によるアクセス制限のテクニック
    http://www.atmarkit.co.jp/flinux/rensai/apache09/apache09b.html


4.の“IP認証を定義する3つの要素と記述方法”のところで、orderに関する説明が間違っているような気がするんだけど…?σ(- -;)。
1.のOrder ディレクティブの説明と反対でないかなぁ…??

*1:Deny ディレクティブが Allow ディレクティブの前に評価されます。アクセスはデフォルトで許可されます。Deny ディレクティブに合わないか、Allow ディレクティブに合うクライアントはアクセスを許可されます