[ホーム] -> [SSI 実験室]

SSI って何? どうすれば動くの?

SSI とは

SSI は、Server Side Include の略で、これを使うと CGI と同様に、動的な html コンテンツを提供できます。概要としては、まず、ホームページの発信者は、html ファイル内に、SSI の命令を埋め込んだものを作成し、WWW サーバに登録します。すると、サーバからクライアントに、ホームページのデータを送信する際に、WWW サーバが html ファイルに書かれた SSI の命令を読みとって、これを処理します。この処理は、クライアントにデータを送信する前に毎回行われます。このことから解るとおり、SSI を使用してページを作成すると、SSI を使用していないときに比べ、サーバに不可がかかります。また、SSI を使用したページは、クライアントマシンや、プロキシサーバにはキャッシュされません。したがって、不必要に SSI を使用するのは避けなければなりません。

どの WWW サーバなら動くの?

SSI を使用するには、SSI を使ったホームページを作成したり、サーバ側の設定する以前に、SSI が使用できるかを確認しなければいけません。普通、ISP(インターネットサービスプロバイダ) は、自社のサーバが SSI を使用できるかどうかをアナウンスしているはずです。どうしても見つからなかったら、ISP のサポート係に対してメールを送って聞いてみたり、雑誌などを調べてみる必要があります。私の知る限り、インターネットマガジンは、毎回、全国のプロバイダの一覧を掲載しており、そこに SSI が使えるかどうかも書いてあります。

自分の会社で、WWW サーバを運営している場合は、システムの管理者に問い合わせる必要があるかも知れません。ただ、管理者も知らない可能性があります。そのときは、どの WWW サーバで運営しているかを聞けば、だいたいの予想は付きます。SSI を実行できる WWW サーバは幾つかありますが、私が実際に動作確認できているサーバは UNIX 上で動く Apache 、WindowsNT 上で動く IIS です。Microsoft社のパーソナル Web サーバなども、一部の機能を除いて SSI を使用することが出来るようです。

SSI を使うには

では、SSI を使用するにはどうしたらいいのでしょう。Apache 系の設定の話をします。まず、サーバに SSI を使った htmlファイルであることを、教えなければなりません。それには、ACF(アクセスコンフィグレーションファイル)と呼ばれる設定ファイルを用意します。この設定ファイルのファイル名は「.htaccess」です。ファイル名のはじめがピリオドで始まり、合計9文字です。そして、このファイルに次の1行を追加します。

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

ちなみにこの設定だと、拡張子が .html で終わるすべてのファイルに対し、サーバが SSI を含んでいないかチェックを行います。したがって、SSI が含まれていないページもチェックされるのでサーバにいらぬ負荷をかけることになります。パフォーマンスの悪いサイトでは、例えば次のように変更して、これを回避する必要があります。

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

このように変更した場合、SSI を含む html ファイルの拡張子を、shtml にしなければなりません。ですが、サーバに余分な負荷をかけません。

.htaccess ファイルは、このファイルが置かれているディレクトリ以下の全てのディレクトリで設定が有効になります。したがって、このファイルをドキュメントのルートディレクトリに置いておけば、それ以下の全てのディレクトリに有効となります。

注意

実は、「.htaccess」といファイル名は、サーバ側の設定により変更することができます。これは、クライアント側から、.htaccess ファイルを見ようと思えば、簡単に見ることが出来てしまうためです(設定により、見えなくもできるのですが・・・)。そのため、用心深い管理者であれば、この名前を、知らない人間に推測しにくい名前に変更してあるかも知れません(さたに用心深い管理者は、ディレクトリごとの ACF ファイルを使用できないようにしているかも知れません)。この場合は、どんな名前のファイルすればいいか(あるいは使えるか)を、管理者に聞いて下さい。

最近のApache サーバの場合、ACF で「AddType 〜」を使用するのではなく、html ファイルに実行属性を付ける方法があります。これは、XBITHACK という機能で、実行属性がついているhtml ファイルがあった場合、WWW サーバはそのファイル内で SSI が使用されていると判断して適切な処理を行ってくれます。

どちらの方がいいかは状況によります。実行属性が付いているかどうかは、アクセスするたびにチェックするので、その分負荷はかかります。ただし、お手軽ではあると思います。アクセスしてきたユーザからは、SSI が動いているようには見えないというメリットもあります。

ホームへ