Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
現在、以前リリースしました 『インターネット Web サーバー構築ガイドライン』 の正式版作成の作業に取り掛かっております。
さて、この 『インターネット Web サーバー構築ガイドライン』 は、IIS 7.x をより深く理解いただくために、様々な機能の解説が含まれているのですが、「解説はいいから具体的な手順のみが知りたいのだよ」 という方もいらっしゃるとと思います。
そこで今回は、『インターネット Web サーバー構築ガイドライン ( ドラフト版 )』 を作成する際に集めた情報を再利用し、IIS 7.x を操作するための具体的な手順が記載されているページのリンクを目的別にまとめてみました。
「とりあえず IIS を動かして使ってみたい」 という方がいらっしゃいましたら、ぜひこのページをご紹介いただければと思います。
なお、リンク先のドキュメントのほとんどは IIS7.0 (Windows Server 2008 & Vista ) をもとに書かれていますが、操作上 IIS7.5 ( Windows Server 2008 R2、Windows ) と大きく異なる点はありませんので、適宜読み替えてご使用いただければと思います。
IIS7.x のインストール
IIS は Windows OS 標準の Web サーバーですので、インストールに追加のモジュールは必要ありません。セットアップも OS の機能追加画面から行うことができます。
サーバー OS とクライアント OS では、インストールの画面が異なりますが、IIS 自体には動作的な違いはほとんどありません。
IIS 7.x のインストール手順につきましては以下のドキュメントをご参照ください。
Windows Server 2008 - IIS 7.0 のインストール方法
https://technet.microsoft.com/ja-jp/library/dd647605.aspx#MethodsInstall
Windows Vista への IIS 7.0 のインストール
https://technet.microsoft.com/ja-jp/library/ee890770.aspx
Server Core(※) への IIS 7.0 のインストール
https://technet.microsoft.com/ja-jp/library/dd647598.aspx
(※) Server Core というのは Windows Server 2008 の GUI 持たないセットアップ形態です。管理はコマンドラインで行うか、リモートマシンから管理ツールを接続して行う必要があります。しかしその代りメモリや CPU といったハードウェアリソースをより有効に使用することができる、適用するセキュリティパッチの削減、悪意あるユーザーからの攻撃対象削減といった様々なメリットがあります。
余談 : Windows Server 2008 R2 と Windows 7 への IIS7.5 のインストール手順は、なぜかコマンドラインでの手順が紹介されているんですよね。 ( 画面ショットを取るのが面倒だったとか? ) 参考として紹介させていただきます。
Windows Server 2008 R2 への IIS 7.5 のインストール
https://technet.microsoft.com/ja-jp/library/cc771209(WS.10).aspx
Windows 7 Professional、Enterprise、または Ultimate への IIS 7.5 のインストール
https://technet.microsoft.com/ja-jp/library/cc725762(WS.10).aspx
IIS の管理ツール
IIS 7.0 からの管理ツールは IIS 6.0 までのものと大きく外観が異なっていますが、なぜそのような変更が必要であったかについては以下のドキュメントで触れられています。また、同ドキュメントには *.config ( 設定 ) ファイルについても解説が書かれていますが、初めて IIS を使用する人は IIS 管理ツールの UI の名称と、それぞれの場所を覚えるくらいで良いと思います。
IIS マネージャーの概要
https://technet.microsoft.com/ja-jp/library/dd647594.aspx
IIS 7.x の設定ファイルについて
IIS 管理ツールで行われた設定は、すべて IIS の設定ファイルに保存され、IIS がホストする各サービスはその設定に基づいて動作を行います。
つまり、IIS 管理ツールを操作して設定を行うことは、間接的に IIS の設定ファイルを書き換えていることに他なりません。
IIS が使用している設定ファイルは次の 4 つです。IIS サービスそのものの情報を保持する applicationHost.config ファイル、管理ツール専用の設定ファイルである administration.config ファイル、共有構成の情報を保持している redirection.config ファイル、Web サイトや仮想ディレクトリの情報を保持する web.config ファイルです。
web.config 以外の 3 つのファイルは C:\windows\system32\inetsrv\config の下に配置されています。
web.config は、各 Web サイトや仮想ディレクトリに個別に自動的に配置されますが、もととなる設定が定義されている ルート web.config ファイルと呼ばれるファイルが C:\Windows\Microsoft.NET\Framework\<バージョン>\CONFIG の下に配置されています。
| 設定ファイル名 | 保持する情報 | 配置場所 |
| applicationHost.config | IIS のサービス全体 | C:\windows\system32\inetsrv\config |
| administration.config | 管理ツール | |
| redirection.config | 共有構成 | |
| web.config | Web サイト 仮想ディレクトリ | C:\Windows\Microsoft.NET\Framework\<バージョン>\CONFIG |
(表 : IIS7.x の設定ファイル)
これら設定ファイルについて説明しているドキュメントへのリンクは以下の通りです。
IIS 7.0 コンフィギュレーション リファレンス
https://technet.microsoft.com/ja-jp/library/ee431610.aspx
ApplicationHost.config の紹介
https://technet.microsoft.com/ja-jp/library/dd647601.aspx
Web サーバーを開始、停止するには
IIS 7.x は、インストールが正常に完了した時点で自動的にサービスが開始されます。
IIS 7.x のサービスの 開始 / 停止 の方法については以下のドキュメントをご参照ください。
IIS 7.0: Web サーバーを開始または停止する
https://technet.microsoft.com/ja-jp/library/cc732317(WS.10).aspx
コンテンツの公開と仮想ディレクトリの作成
IIS 7.x のインストール完了後、Web ブラウザーから https://localhost/ または https://マシン名/ にアクセスすると、以下のようなページが表示されます。
(図 : Default Web Site の 既定のドキュメント)
これは既定で公開されている Web サイト = “Default Web Site” ( 既定の Web サイト ) の、URL のファイル名省略時にクライアントに返されるファイル ( 既定のドキュメント) です。
この Default Web Site の実際の場所は C:\inetpub\wwwroot であり、このフォルダにエクスプローラーなどでファイルを配置すると、IIS で公開されます。
同様に C:\inetpub\wwwroot 下にフォルダを作成すると、そのフォルダの内容も IIS を介して http で公開されます。
たとえば、C:\inetpub\wwwroot 下にエクスプローラーを使用して “myDir” というフォルダを作成し、hello.htm という名前のファイルを配置すると、Web ブラウザーからは、https://localhost/myDir/hello.html もしくは https://マシン名/myDir/hello.html という URL でアクセスすることが可能になります。
また、別途 仮想ディレクトリ を作成することで、コンピューターのディスク上の任意のフォルダを IIS で公開することができます。
仮想ディレクトリの追加方法については、以下のドキュメントをご参照ください。
IIS 7.0: 仮想ディレクトリを追加する
https://technet.microsoft.com/ja-jp/library/cc771804(WS.10).aspx
既定のドキュメント の設定方法については、以下のドキュメントをご参照ください。
IIS 7.0 で既定のドキュメントを構成する
https://technet.microsoft.com/ja-jp/library/cc753615(WS.10).aspx
公開できるファイルの設定
IIS では、物理フォルダを Web サイトや仮想ディレクトリとして公開しますが、そのフォルダ上に配置されているすべてのファイルの公開を許可しているわけではありません。
IIS は応答を返すファイル種別のリストを持っており、それに基づいてクライアントに送信するファイルを決定しています。また、この設定は、クライアントにファイルの種類を通知する役割も担っており、この設定を MIME ( Multipurpose Internet Mail Extensions、マイム ) といいます。
Wikipedia - Multipurpose Internet Mail Extensions
https://ja.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions
配置したファイルが Web ブラウザーに表示されない場合は、ファイルの拡張子に対し MIME の設定が適切に行われているか確認しましょう。
IIS 7.x で MIME タイプの設定を行う手順については、以下のドキュメントをご参照ください。
IIS 7.0: IIS 7.0 で MIME の種類を構成する
https://technet.microsoft.com/ja-jp/library/cc753281(WS.10).aspx
Web サイトの作成と仮想ホストの設定
IIS では既定の Web サイト以外にも、新規に Web サイト作成して追加することができます。
さらに バインド 情報の設定を行うことで、一台の物理マシンで https://contoso.com や https://exsample.com といったような、複数の異なるドメインの URL を運用することもできます。これを 仮想ホスト、バーチャルホストなどと呼びます。
Wikipedia - バーチャルホスト
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9B%E3%82%B9%E3%83%88
Web サイトの作成、仮想ホストの設定方法については、以下のドキュメントをご参照ください。
IIS 7.0: Web サイトを作成する
https://technet.microsoft.com/ja-jp/library/cc772350(WS.10).aspx
IIS 7.0: Web サイトのホスト ヘッダーを構成する
https://technet.microsoft.com/ja-jp/library/cc753195(WS.10).aspx
IIS 7.0: サイトにバインドを追加する
https://technet.microsoft.com/ja-jp/library/cc731692(WS.10).aspx
また、ホストヘッダーを使用したバーチャルドメインで、個別の SSL 設定で使用する方法については、このブログでも過去に記事にしていますのでご覧ください。
https://blogs.msdn.com/b/osamum/archive/2009/10/19/iis-ssl.aspx
SSL の設定
SSL (Secure Sockets Layer ) を設定すると、サーバーとクライアント間の通信が暗号化され、機密情報や個人情報を保護することでできます。SSL を有効にすると、リモート クライアントは、https:// で始まる URL を使用してサイトにアクセスします。
Wikipedia - Secure Sockets Layer
https://ja.wikipedia.org/wiki/Secure_Sockets_Layer
IIS 7.x での SSL の具体的な設定手順は以下のドキュメントをご参照ください。
IIS 7.0 で SSL (Secure Sockets Layer) を構成する
https://technet.microsoft.com/ja-jp/library/cc771438(WS.10).aspx
なお、ベリサイン社などのパブリック CA ( 証明書機関 ) に証明書の要求する手順につきましては、以下のドキュメントをご参照ください。
IIS 7.0: インターネット サーバー証明書を要求する
https://technet.microsoft.com/ja-jp/library/cc732906(WS.10).aspx
IIS 7.x では自己証明書を自ら発行し、SSL のテストや検証作業に使用することができます。
IIS 7.0 で自己署名入りサーバー証明書を作成する
https://technet.microsoft.com/ja-jp/library/cc753127(WS.10).aspx
IIS 7.x の証明書関連についての詳細は、以下のドキュメント内にある各トピックについてのリンクをご参照ください。
IIS 7.0 でサーバー証明書を構成する
https://technet.microsoft.com/ja-jp/library/cc732230(WS.10).aspx
その他、IIS7.x では FTP や WebDav に対しても SSL を設定することができます。
FTP over SSL の使用
https://technet.microsoft.com/ja-jp/library/dd939105.aspx
※WebDav の SSL 設定につきましては Web サイトと同様の手順となります。
認証を設定する
インターネットに公開するコンテンツであっても、閲覧者を限定したい場合があります。
たとえば、会員向けに有料コンテンツなどを配信している場合などです。
IIS 7.x ではインターネットで標準的に使用されている基本認証はもちろん、様々なブラウザーで使用可能な Web フォーム認証など、様々な認証方式をサポートしています。
IIS 7.x で基本認証を設定する手順につきましては、以下のドキュメントをご参照ください。
IIS 7.0: 基本認証を構成する
https://technet.microsoft.com/ja-jp/library/cc772009(WS.10).aspx
その他の認証方式につきましては、以下のドキュメントをご参照ください。
IIS 7.0: IIS 7.0 で認証を構成する
https://technet.microsoft.com/ja-jp/library/cc733010(WS.10).aspx
また Web フォーム認証については、このブログの記事で手順を詳しく書いていますので、こちらをご覧ください。
https://blogs.msdn.com/b/osamum/archive/2009/04/23/iis-7.aspx
アクセス制限の設定
認証とは別に、特定の IP アドレス、もしくはブラウザの種別で Web サイトへのアクセスを制限したい場合があります。
たとえば、挙動不審なリクエストを行っているクライアントの IP が明確に分かっている場合や、不正なリクエストをブロックしたい場合などです。
IIS 7.x でアクセス制御の設定を行う具体的に手順につきましては、以下のドキュメントをご参照ください。
IIS 7.0: IPv4 アドレスおよびドメイン名の規則を構成する
https://technet.microsoft.com/ja-jp/library/cc770819(WS.10).aspx
要求フィルターの使用方法
https://technet.microsoft.com/ja-jp/library/dd939071.aspx
リダイレクトの設定
Web サイトが引っ越して、URL が変更になった場合は、古い URL へのリクエストを新しい URL に転送する必要があります。
これを リダイレクト といいいます。
Wikipedia - リダイレクト (HTTP)
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88_(HTTP)
転送 というと、リクエストを受けたサーバーが、目的のサーバーに直接クライアントからのリクエストを送っているように感じますが、実はそうではありません。
Web サーバーの実際の動作では、リダイレクトが必要な URL のリクエストを受信した Web サーバーは、リダイレクト処理であることを示すステータスコード ( HTTP 301,302 ,307 など ) をリダイレクト先の URL をクライアントに送信します。
クライアントは、Web サーバーから返された HTTP ステータスコードからリダイレクトであることを判断し、同時に返されたリダイレクト先の URL にアクセスするのです。
IIS 7.x でリダイレクトを構成するには以下のドキュメントの内容をご参照ください。
IIS 7.0: IIS 7.0 で HTTP リダイレクトを構成する
https://technet.microsoft.com/ja-jp/library/cc732969(WS.10).aspx
リダイレクトの際に返す HTTP ステータスコードにつきましては、このブログでも記事にしてありますのでご参照ください。
https://blogs.msdn.com/b/osamum/archive/2010/01/26/9953332.aspx
独自のエラーページを使用するには
IIS でクライアントからのリクエストが正しく処理できなかった場合、処理状態を示す HTTP ステータスを含んだエラーページをクライアントに返します。
IIS 7.x では、このエラーページを独自に作成したエラーページに差し替えたり、状態コード ( HTTP ステータスの数字の部分 ) を追加、変更することができます。
具体的な方法については以下のドキュメントをご参照ください。
IIS 7.0 で HTTP エラー応答を構成する
https://technet.microsoft.com/ja-jp/library/cc731570(WS.10).aspx
リクエスト ログの記録場所と設定
IIS では World Wide Web サービスが開始されると同時に、リクエストのログの収集が開始されます。
このログが書かれたファイルは、既定では C:\inetpub\logs\LogFiles\W3SVC1 に保存されます。
なお、フォルダ名 W3SVC1 の 1 という数字は Web サイトに振られた番号を表しており、1 は Default Web Site を示しています。
IIS 7.x ではログの保存場所や、取得するログの項目、フォーマットなども指定することができます。
具体的な手順と関連情報につきましては、以下のドキュメントの内容をご参照ください。
IIS 7.0: ログ記録する W3C フィールドを選択する
https://technet.microsoft.com/ja-jp/library/cc754702(WS.10).aspx
サイト レベルでログ記録オプションを構成する
https://technet.microsoft.com/ja-jp/library/cc732826(WS.10).aspx
IIS 7.0: ログ ファイル ロールオーバー オプションを構成する
https://technet.microsoft.com/ja-jp/library/cc754615(WS.10).aspx
なお、リクエストログは自動的に削除は行われませんので、長期間に渡る運用を行う際にはログファイルの容量がディスク容量を圧迫していないか定期的に確認するようにしてください。
FTP を使用するには
Windows Server 2008, Windows Vista ( IIS 7.0 ) と Windows Server 2008 R2, Windows 7 ( IIS 7.5 ) では、既定で搭載されている FTP のバージョンが異なります。
Windows Server 2008, Windows Vista に既定で搭載されているのは IIS 6.0 に付属していたものと同じバージョンのものです。
一方、Windows Server 2008 R2, Windows 7 に搭載されているのは、FTP 7.5 という新バージョンのものです。
Windows Server 2008, Windows Vista でも FTP 7.5 を別途ダウンロードしてインストールすることにより使用することができます。
FTP 7.5 は以下のリンクから入手することができます。
Microsoft FTP Service 7.5 for IIS 7.0 (x86)
https://www.microsoft.com/downloads/details.aspx?FamilyID=b7f5b652-8c5c-447a-88b8-8cfc5c13f571&DisplayLang=ja
Microsoft FTP Service 7.5 for IIS 7.0 (x64)
https://www.microsoft.com/downloads/details.aspx?familyid=FFB7C167-279E-48D3-8169-DEA85784C4D1&displaylang=ja
IIS 7.x で FTP サイトを構成する手順につきましては、以下のドキュメントの内容をご参照ください。
FTP サイトの追加
https://technet.microsoft.com/ja-jp/library/dd463981(WS.10).aspx
FTP サイトの開始または停止
https://technet.microsoft.com/ja-jp/library/dd463991(WS.10).aspx
FTP 7.x ではログオンしたユーザーごとに自動でディレクトリを割りふる機能なんかもあります。
FTP ユーザーの分離の構成
https://technet.microsoft.com/ja-jp/library/dd464015(WS.10).aspx
なお、FTP 7.5 の新機能につきましては以下のドキュメントをご参照ください。
Microsoft FTP 7.5 の新機能
https://technet.microsoft.com/ja-jp/library/dd939116.aspx
WebDav を使用するには
Windows Server 2008 R2, Windows 7 ( IIS 7.5 ) には、WebDav があらかじめ含まれていますが、Windows Server 2008, Windows Vista ( IIS 7.0 ) では別途ダウンロードしてインストール必要があります。
IIS 7.0 用の WebDav モジュールは以下の URL から入手することができます。
Microsoft WebDAV 7.5 for IIS 7.0 (x86)
https://www.microsoft.com/downloads/details.aspx?FamilyID=8a47d609-8d95-4e1a-b2f2-2303e7e10edc&DisplayLang=ja
Microsoft WebDAV 7.5 for IIS 7.0 (x64)
https://www.microsoft.com/downloads/details.aspx?FamilyID=ef237a40-9d06-4a6c-830c-31653624cf79&displayLang=ja
具体的な設定手順につきましては、以下のドキュメントをご参照ください。英語のページですが、図入りでわかりやすく解説されています。ただし、Windows 7, Windows Server 2008 R2 をお使いの方は、FTP モジュールのダウンロードとインストールの箇所は読み飛ばしてください。
Installing and Configuring WebDAV on IIS 7
https://learn.iis.net/page.aspx/350/installing-and-configuring-webdav-on-iis-7/
アプリケーションを実行するには
IIS 7.x は、プラットフォームとしてオープンな動作環境を提供しており、インターネットで使用されているほとんどの Web アプリケーションのランタイムを動作させることができます。
ここでは、ある事情から ( 詮索しないでね ) Classic ASP と ASP.NET および PHP についてのみリンクを掲載しますが、他のアプリケーションランタイムも動作させることができます。
以下に、各ランタイムを動作させるまでの手順と、補足情報を示したドキュメントの URL を記載します。
Classic ASP
IIS 7.0: クラシック ASP サーバーを展開する
https://technet.microsoft.com/ja-jp/library/cc753918(WS.10).aspx
IIS 7.0 および IIS 7.5 上で Classic ASP アプリケーションを実行する
https://technet.microsoft.com/ja-jp/library/ee155445.aspx
ASP.NET
ASP.NET サーバーを展開する
https://technet.microsoft.com/ja-jp/library/cc731252(WS.10).aspx
ASP.NET は Windows Server 2008 の Server Core では使用することができません。これは Windows Server 2008 の Server Core に .NET Framewok をインストールできないためです。ただし、Windows Server 2008 R2 の Server Core では .Net Framewok のサブセットが利用可能になっています。
ASP.NET 開発者向けには以下のようなドキュメントも用意されています。
Windows Server 2008 での IIS 7.0 および Visual Studio を使用した Web アプリケーションの実行
https://msdn.microsoft.com/ja-jp/library/bb763178.aspx
Windows Vista での IIS 7.0 および Visual Studio を使用した Web アプリケーションの実行
https://msdn.microsoft.com/ja-jp/library/aa964620.aspx
PHP
IIS 7.x から FastCGI モジュールが IIS に含まれて出荷されることになり、Windows 環境でより安全で快適に PHP アプリケーションを動作されることができるようになりました。
FastCGI と PHP ランタイムの設定方法につきましては、以下のドキュメントの内容をご参照ください。
FastCGI を使用して IIS 7 で PHP アプリケーションをホストする
https://technet.microsoft.com/ja-jp/library/ff454003.aspx
OSS Web アプリケーションのインストールについて
マイクロソフトでは Web プラットフォーム インストーラー ( Web Platform Installer : 通称 Web PI ) という無償ツールを公開しており、これを使用すると、WordPress、XOOPS といった人気の高いオープンソース Web アプリケーションを簡単にインストールして使用することができます。
WebPI は、単にアプリケーションのファイルのコピーを行うのではなく、IIS のインストールから DB サーバーのセットアップ、アプリケーションランタイムの設定も同時に行います。
インストールは分かりやすいウィザード形式の GUI で行われますので、細かい構成を気にせずに簡単に OSS Web アプリケーションをセットアップして使いたいという場合は WebPI をぜひお試しください。
Microsoft/web - Web プラットフォーム インストーラー
https://www.microsoft.com/web/downloads/platform.aspx
SSI ( Server Side Include)
SSI は、IIS 関連のドキュメントでは “サーバー側インクルード” と記述されるため、ドキュメントが見つからず、「IIS で SSI は使用できないのではないか?」 と思われている方もいると思いますが、ちゃんと使えます。
具体的な設定方法につきましては、以下のドキュメントをご参照ください。
サーバー側インクルード <serverSideInclude>
https://technet.microsoft.com/ja-jp/library/ee431647.aspx
IIS 7.x をリモート管理するには
IIS 7.x の管理サービスを使用すると、ネットワークを介してリモート マシンから IIS を管理することができます。
管理サービスの手順、および詳細な情報については、以下のドキュメントの内容をご参照ください。
IIS 7.0 で管理サービスを構成する
https://technet.microsoft.com/ja-jp/library/cc754321(WS.10).aspx
IIS 7.x の管理サービスはポートの指定も可能なので、たとえば 8080 を指定してインターネット越しに管理ツールを接続することも可能です。
また、管理サービスに接続するための IIS マネージャーは Windows XP から用意されているので、クライアントの選択肢も広がります。
IIS Manager for Remote Administration
https://technet.microsoft.com/ja-jp/iis/ee839447.aspx
このブログでは以前、この管理サービスを利用した Web サイトの共有ホスティングサービスの構築方法について記事を書いていますので、興味がありましたらご覧ください。
https://blogs.msdn.com/b/osamum/archive/2009/11/11/iis-net.aspx
さて、今回は 『インターネット Web サーバー構築ガイドライン ( ドラフト版 )』 を作成する際に集めた情報を再利用して、目的別にリンク集を作成してみましたが、お役に立ちましたでしょうか?
おおもとの 『インターネット Web サーバー構築ガイドライン ( 正式版 ) 』 は、当初のコンセプトとは少々ずれ、以外と濃いィ~内容になりそうです。
リリースは年内中を目指していますので、お楽しみに。
Comments
Anonymous
February 22, 2011
IIS で PHP アプリをホストする方々向けに、わかりやすいマニュアルを作りましたのでぜひご活用ください。 PHP on Windows ガイドライン technet.microsoft.com/.../gg535422Anonymous
August 17, 2011
Windows Server 全体の CPU やメモリ、いわゆるマシンリソースを調整する機能については以下の記事をご覧ください。 IIS7.x サーバーのリソース調整関連の簡易リンク集 blogs.msdn.com/.../iis7-x.aspx NLB を使用される方は、以下の記事もご覧くださいませ。 NLB 環境における IIS7.x の共有構成について blogs.msdn.com/.../nlb-iis7-x.aspxAnonymous
July 08, 2014
すばらしい。