この特集のトップページへ
>
Chapter 8:プレゼンテーション層の構築
●仮想ディレクトリ
サイトのツリーの配下には,「仮想ディレクトリ」という項目が含まれている。Fig.8-1の例でいえば,次のものが仮想ディレクトリである。
- Scriptsディレクトリ
- IISHelpディレクトリ
- IISAdminディレクトリ
- IISSamplesディレクトリ
- MSADCディレクトリ
- _vti_binディレクトリ
- Printersディレクトリ
仮想ディレクトリとは,Windowsファイルシステム内に存在する特定フォルダへのマッピング設定のことである。たとえば,デフォルトの状態で[既定のWebサイト]の下にあるScripts仮想ディレクトリは,C:\inetpub\scriptsフォルダに割り当てられている。よって,クライアントが“http://サーバー名/Scripts/”というURLを要求してきたときには,C:\inetpub\scriptsフォルダの内容が送信されることになる。
先に説明したように,既定のWebサイトはC:\inetpub\wwwrootフォルダに設定されている。よって,仮想ディレクトリの設定がなければ,“http://サーバー名/Scripts/”というURLは,C:\inetpub\wwwrootフォルダの下にあるScriptsフォルダを示す。しかし実際には,Scripts仮想ディレクトリの設定があるため,“http://サーバー名/Scripts/”へのアクセスはC\inetpub\scriptsフォルダへのアクセスに変換されるのである(Fig.8-2)。
Fig.8-2 仮想ディレクトリ
このように,仮想ディレクトリはURLを特定のフォルダにマッピングするために用いられる。一般には,提供するコンテンツやWebアプリケーションごとに仮想ディレクトリを用意し,そのなかにHTMLファイルやWebアプリケーションを構成するプログラムなどを格納することになるだろう。
IISにおいては,仮想ディレクトリ名,フォルダ名,ファイル名の大文字小文字の区別はない。これは,OSであるWindows 2000のファイルシステムが,フォルダ名やファイル名の大文字小文字を識別はしても区別はしないからである。
わざわざ仮想ディレクトリを用意しなくても,C:\inetpub\wwwrootフォルダの下にサブフォルダを作るという方法もある。しかし,そのような構成にすることは,あまりない。その理由は,以下のとおりである。
- Webアプリケーションの実行単位の問題
-
IISは,仮想ディレクトリ単位でWebアプリケーションを実行する。「8.1.3 サイトのプロパティ」で説明する,サイトのプロパティの[ホームディレクトリ]ページや,仮想ディレクトリのプロパティの[仮想ディレクトリ]ページの設定にもよるが,IISは仮想ディレクトリ内のWebアプリケーションを1つのグループとして扱い,特定のプロセス内で実行するという機能を備えている。この機能を利用すると,あるWebアプリケーションが不具合を起こしたときにも,別の仮想ディレクトリ内に配置されているWebアプリケーションやIIS自身にダメージを与えずにすむ。
- セキュリティの問題
-
IIS 4.0におけるセキュリティは,サイト全体または仮想ディレクトリ単位で設定する。よって,Webアプリケーションごとに仮想ディレクトリを作ることで,個々のWebアプリケーションに対して別々のセキュリティを設定することができる。
IIS 5.0では,仮想ディレクトリ単位だけではなく,フォルダ単位でもセキュリティを設定できるようになっている。そのため,セキュリティの設定については,C:\inetpub\wwwrootフォルダの下にサブフォルダを作っても,仮想ディレクトリを作っても,設定できる項目の差はあまりない。
単純にHTMLファイルや画像ファイルをユーザーに提供したいというだけの用途であれば,C:\inetpub\wwwrootフォルダの下にサブフォルダを作って運用してもかまわない。しかし,そうではなくWebアプリケーションを提供したいという場合には,Webアプリケーション用に仮想ディレクトリを作成することを推奨する。
2/43 |