ある日の事だった。
僕はネットで友人とNokiaのGSM携帯について話していた。日本の携帯はどうしてバッテリーが保たないわ使わない機能がてんこもりだわという友達の愚痴に進むに及び、よくも悪くもそれが日本製品だよなぁ内心思っていたら唐突に会社から電話がかかってきた。
「へいスティーブ、HTMLファイルでSSI Includeを効かせるにはどうするんだい?教えてくれよ!」おやおや @@
そんなわけでこの記事を書く。ちなみに以上の話はフィクションであり、私はスティーブではないので念のため :D
2008/10/29現在、Apacheは2.2.*系列になっている。tar玉からインストールした方ならご存知のように最近のApacheの設定ファイルは細分化され、機能別になっている。これは歴史的トレンドにもなっていて、まさかの時もすべてが壊れないし、付加的な各種ツールから操作する時にも都合がいい。そういうわけなんである。
Debianの手法はオリジナルとは違う。でもバラバラで管理するという上ではやはり同じようになっている。
負荷面での問題にはここでは触れない。.htmlも*.shtmlと同様に扱うのは簡単だが、当然負荷が上がるのは今更論じるまでもないだろうからだ。
さて、Debian上でこれを有効にするには以下のようにする。これは手法のひとつに過ぎず他にもいくつかのやり方があるが、これらも基本は皆同じである。つまり「SSIを有効にする」と「*.htmlでも*.shtml同様に扱う」この二点である。
Debian系列ではincludeモジュールをロードする。つまり次のコマンドを実行する。
# a2enmod include
alreadyナントカと言われるならば既にロードずみ。そうでないなら、reloadがどうのと言われるはずである。うまくいったからapacheをreload、またはrestartしなさいというわけだ。
このままでは肝心のドメインで有効にならないだろう。
/etc/apache2/sites-available/default を見て該当ディレクトリに"Includes"を追加せよ、といえばApache2の設定をした人ならばわかるはずだ。
<Directory /home/*/public_html/> Options Indexes FollowSymLinks +MultiViews Includes </Directory>
/etc/apache2/apache2.conf を見て、以下を追加。この方法は*.phpなんかでも使える。
AddType text/html .shtml AddOutputFilter INCLUDES .shtml
AddType text/html .shtml AddOutputFilter INCLUDES .shtml AddOutputFilter INCLUDES .html
restartは時々問題を起こす事がある。ここはstopしてstartしたい。
# /etc/init.d/apache2 stop # /etc/init.d/apache2 start