Sorry,this site is Japanese only!
 jseek.org is study memo

Apache2

インストール(SSI設定追加編)

今回はこの設定に「SSIを使えるようにする」という設定を加えていきたいと思います。
まず、今回SSI機能の追加にあたり、一般的なお話としてSSIについて若干触れておきたいと
思います。

SSIとは「Server Side Include」の略で、HTMLファイル中に記述されるコマンドなどを
解析、実行し、コマンドが記述されていた場所に結果を入れて
HTMLファイルをクライアントに返すという機能です。
一般的にSSI命令を含むファイルの拡張子は「.shtml」としましょうという約束があります。

ということで実際に設定の話に移っていくのですが、CGI設定編に
「ディレクトリに指定をかける」というような表現がでてきました。
これを行うためのタグとしてapacheには

 

 <Directory 指定対象のディレクトリ>〜〜〜</Directory>

 

というものが存在するとお話したと思います。ここで、「〜〜〜」は指定したディレクトリに対する
指示をさしています。

そして、今回行う指示は「SSIを有効にする」「.shtmlという拡張子をもつファイルはSSIを含むファイル
であると認識する」です。

まず、前者について、は標準では許可されないためオプションの設定となります。
こういったオプションを指定するための記述子として「Options」というものがあります。

そして、「CGIの実行」を意味するオプションは「Includes」です。つまり、これらを組み合わせると

 

 Options Includes

 

となります。

次に「拡張子がshtmlとなっているものをCGIとして認識する」という話ですが
apache自身はSSIという存在をしっており、この存在のことを
INCLUDESという名前で覚えています。

そして、拡張子shtmlを持つものを、SSIとして扱うという宣言を行うには
次のような宣言を行います。(この宣言はhttpd.confの871行目あたりで
コメントアウトされていますので、コメントをはずしてあげてください。)

 

 AddType text/html .shtml
 AddOutputFilter INCLUDES .shtml

 

この二つを指定した地点ではじめてSSIが使用可能になります。
ここまでの設定ができたら、基本設定編と同じく

 

 # /usr/local/apache2/bin/apachectl stop
 # /usr/local/apache2/bin/apachectl start


として、apacheを再起動し、設定を反映させましょう。
みなさん意図通りSSIを使用することができましたか?