Windows IIS(Internet Information Services)の入門

ウェブサイトは、今日のインターネットコンテンツの中で最も一般的なタイプです。しかし、あなたのウェブサイトを可能な限り広い視聴者に見せるためには、ウェブサーバーにあなたのウェブサイトをホストする必要があります。どうやって?Windowsインターネットインフォメーションサービス(Windows IIS)に頼ることを考えてみてください。これは、ウェブホスティングに人気の選択肢です。

このチュートリアルでは、GUIまたはコマンドライン環境を通じてウェブアプリケーション管理を始めるための基本を学びます!

読み進めて、Windows IISでウェブアプリケーションの管理をレベルアップしましょう!

前提条件

このチュートリアルは実践デモになります。同じように進めたい場合は、以下を確認してください:

  • A Windows machine – This tutorial uses Windows Server 2012 since it’s stable and available at a low cost (or free). But you can also use Windows 10 for this tutorial.
  • Visual C++ ディストリビューションがあなたのWindowsマシンにインストールされています。IISは、PHPページを正しくレンダリングするためにVisual C++を必要とします。

WindowsサーバーにWindows IISをインストールする

IISウェブサーバーは、Windowsオペレーティングシステム上でウェブサイトやサービスをホストするための豊富な機能とスケーラビリティを提供します。しかし、IISを使用する前に、まずこのツールをWindowsマシンにインストールする必要があります。

WindowsサーバーにWindows IISをインストールするには:

1. Ctrl+Rを押して実行ボックスを開き、ServerManagerと入力してEnterキーを押します。

この操作で、サーバーマネージャーダッシュボードが開きます。IT管理者は、サーバー管理に関連する様々な日々のタスクにこのGUIダッシュボードを使用します。

Launching the Server Manager

2. Server Manager で、ローカルサーバーに役割と機能を追加するウィザードを開くために、[役割と機能の追加] リンクをクリックします。

Initiating adding roles and features

3. 次に、[開始する前に] ページの情報を読み、[次へ] をクリックします。

次回役割と機能を追加するときにこのページを表示しないように、デフォルトでこのページをスキップするオプションにチェックを入れることもできます。

Acknowledging the welcome page

4. 今、[インストールの種類] ページで、最初のオプション(役割ベースのインストールまたは機能ベースのインストール)を選択し、[次へ] をクリックします。

このオプションは、ほとんどの場合に推奨されており、特定の役割、役割サービス、および機能を標準的な方法で追加する手順が示されます。

2番目のオプション(リモート デスクトップ サービスのインストール)を選択すると、インストールする必要がある役割、サービス、および機能を手動で選択する必要があります。

Selecting installation type

5. サーバープールからサーバーを選択し、[次へ] をクリックします。

分散インストール用に複数のサーバーを選択することもできますが、これはこのチュートリアルの範囲外です。

Selecting a destination server

6. 次に、スケーラブルな Web アプリケーション インフラストラクチャのために、[サーバーの役割] ページで [Web サーバー (IIS)] チェックボックスをオンにし、[次へ] をクリックします。

Selecting the Web Server (IIS) role to install on the destination server

7. デフォルトが選択されたままにして、[次へ] をクリックします。これにより、Windows に、IIS サーバーの役割に必要なすべてのサブ機能、ASP.NET、静的コンテンツ、およびデフォルトドキュメントがインストールされます。

Confirming default selected features

8. [Web サーバーの役割 (IIS) ]に関する詳細情報を確認し、[次へ] をクリックします。

Reviewing more information about the Web Server Role (IIS)

9. [役割サービス] ページで、デフォルトの選択肢をそのままにして、[アプリケーションの開発] ノードを展開し、[CGI] チェックボックスをオンにし、[次へ] をクリックします。

このオプションは、Common Gateway Interface(CGI)のサポートをインストールします。これは、外部アプリケーションとウェブサーバーをインターフェースする標準的な方法です。

Selecting role services

10. インストール設定を構成した後、インストールボタンをクリックして選択した役割と機能をインストールします。

Installing the selected roles and features

11. インストールが完了したら、以下に示すように、閉じるをクリックしてウィザードを終了します。

以上です! Windows IIS をサーバーに正常にインストールしました。

Finishing the roles and features installation

12. 最後に、お気に入りのウェブブラウザを開き、http://localhost/に移動します。

すべてがうまくいくと、以下のようなデフォルトの IIS ページが表示されます。これにより、ウェブサーバーが起動していることが確認されます。

Viewing the default IIS web page

PHP のインストールと IIS の PHP リクエストの処理の構成

Windows IIS をサーバーに正常にインストールしましたが、まだサーバー上にページを展開する方法が必要です。このチュートリアルでは、PHP をインストールし、IIS を PHP リクエストの処理に対応させます。

サーバーに PHP をインストールするには:

1. PHP リリースのダウンロードページに移動します。この時点での最新の安定版リリースは PHP 8.1 です。

IIS は各リクエストを処理するために単一のスレッドを使用するため、スレッドセーフ(TS)パッケージは使用せず、Non Thread Safe (NTS) ZIP パッケージをダウンロードします。スレッドセーフ(TS)パッケージは、PHP をマルチスレッド環境で実行する IIS FastCGI に使用されます。

Downloading the PHP (NST) package

2. ダウンロードした PHP アーカイブをサーバーの PHP ディレクトリ(C:\PHP\)に解凍します。

アーカイブを解凍した後、ウェブアプリケーションを管理および展開できるように、IISをインストールおよび構成する必要があります。

Unzipping the downloaded PHP archive to the PHP directory

3. サーバーマネージャーを開き、ダッシュボード→ツール→Internet Information Services(IIS)マネージャーを選択します。これにより、IISマネージャーコンソールが開き、IISの設定を構成し、ウェブサイトを作成および管理し、ウェブアプリケーションを展開することができます。

Opening the IIS Manager console.

4. ローカルホスト(接続パネル)を選択し、ハンドラーマッピングをダブルクリックして、利用可能なハンドラーマッピングのリストにアクセスします。

Accessing handler mappings

5. ハンドラーマッピングページで、追加モジュールマッピング(右パネル)をクリックすると、追加モジュールマッピングダイアログボックスが開きます。

Initiating adding a module mapping

6. 次に、新しいマッピングを以下のように構成します:

  • リクエストパス – .phpで終わるすべてのリクエストをIISがPHPプロセッサモジュールに転送するように、*.phpと入力します。ワイルドカード記号(*)を使用すると、各PHPファイルに対してハンドラーマッピングを追加する必要がないため、時間を節約できます。
  • モジュール – リクエストを処理するためにFastCGIモジュールを選択します。FastCgiModule
  • 実行可能ファイルphp-cgi.exeファイルへの完全なパスを入力します。この例では、パスはC:\PHP\php-cgi.exeです。
  • 名前 – ユニークなモジュールマッピング名を指定しますが、このチュートリアルではPHP_FastCGIを使用します。
  • リクエストの制限を構成するには、リクエストの制限をクリックします。
Adding module mapping

7. チェックボックスをオンにし、ファイルまたはフォルダーオプションを選択します。このオプションにより、ハンドラーマッピングはサーバー上のファイルにのみ適用されます。

Selecting the invoke handler

8. Verbsタブに移動し、すべての動詞オプションを選択します。このオプションは、IISにすべての種類のHTTPリクエスト(GET、POST、HEADなど)をPHPプロセッサモジュールに転送するよう指示します。

Selecting all verbs to be handled

9. アクセスタブに移動し、スクリプトオプションを選択し、OKをクリックします。このオプションは、IISにPHPページが直接提供される静的ファイルではなく、実行されるスクリプトであることを指示します。

Selecting the required access by the handler

10. モジュールマッピングの追加を行い、新しいモジュールマッピングを追加するためにOKをクリックします。

Adding the new module mapping

11. 最後に、管理者としてPowerShellを開き、IISRESETコマンドを実行してWindows IISを再起動します。この操作は、新しいハンドラマッピングが有効になるために必要です。

IISRESET 
Restarting the Windows IIS server

最初のウェブサイトを展開する

PHPがインストールされ、IISが構成されたので、最も興奮する部分がやってきます — ウェブサイトを展開することです。しかし、まず、展開するウェブサイトが必要です。この例では、お気に入りのテキストエディタでウェブサイトのルートディレクトリに新しいPHPページを作成し、IISサーバーに展開します。

1. ウェブサイトのルートディレクトリでお気に入りのテキストエディタで新しいindex.phpファイルを作成します。この例では、ウェブサイトのルートディレクトリはC:\inetpub\wwwroot\です。

.php拡張子は、index.phpファイルがPHPプロセッサモジュールによって処理されるPHPページであることをIISに伝えます。

2. 次に、新しいindex.phpファイルに以下のコードを追加し、変更を保存してファイルを閉じます。

以下のコードは、IISにブラウザでPHPページ上にシンプルな「Hello World」メッセージを表示するよう指示します。

<?php
header('Content-Type: text/html; charset=UTF-8');
echo '<html><head><title>Hello World</title></head><body>Hello world!</body></html>';

3. 最後に、ウェブブラウザの新しいタブを開き、http://localhost/index.phpに移動して、ローカルのIISサーバーからindex.phpページを要求します。 これにより、ウェブサイトの展開が機能するかどうかをテストできます。

すべてがうまくいけば、index.phpページでHello world!メッセージが表示されます。

Testing the PHP (index.php) page

コマンドライン環境を介したWindows IISの管理

CLIの愛好者ですか?問題ありません!GUIの他に、IISはコマンドプロンプトを使用しても管理できます。このツールを使用すると、サイト、アプリケーション、仮想ディレクトリ、アプリケーションプールなど、ほとんどすべてのIISの側面を管理できます。

このチュートリアルでは、IISを管理するための基本的なコマンドのいくつかに触れます。すべての利用可能なAppCmd.exeコマンドの完全なリストについては、公式のMicrosoftドキュメントを参照してください。

1. 管理者としてコマンド プロンプトを開き、以下のコマンドを実行して、IIS サーバーで利用可能なすべてのウェブサイト(サイト)を一覧表示します。

%systemroot%\system32\inetsrv\APPCMD list sites

サーバーで現在実行中のすべてのサイトと、各サイトの ID、状態などに関する基本情報が表示されます。

一般的すぎますか? 問題ありません! 次のステップで AppCmd.exe を使用して特定のウェブサイトについて問い合わせ、興味のある情報について詳細に調べることもできます。

Listing all the websites on your IIS server.

2. 以下のコマンドを実行して、デフォルトのウェブサイトに関するすべての情報を取得します。

%systemroot%\system32\inetsrv\APPCMD list site "Default Web Site"
Listing all information about a specific website

3. 次に、特定のウェブサイトを停止し、すべての停止したウェブサイトを一覧表示するために、以下のコマンドを実行します(/state:Stopped)。

停止した状態を、開始中、実行中、または不明などの他のサイトの状態で置き換えることができます。


%systemroot%\system32\inetsrv\APPCMD stop sites "Default Web Site"
%systemroot%\system32\inetsrv\APPCMD list sites /state:Stopped
Finding all websites that are currently stopped

4. さらに、複数の基準をスペースで区切って組み合わせた以下のコマンドを実行して、結果をさらに絞り込みます。

以下のコマンドは、停止した状態であり(/state:Stopped)、サーバーレベルの自動起動が有効になっているサイトをすべて一覧表示します(/serverAutoStart:true)。

%systemroot%\system32\inetsrv\APPCMD list sites /serverAutoStart:true /state:Stopped

5. 最後に、ステップ 3 で停止したウェブサイト(「デフォルト ウェブサイト」)を起動する以下のコマンドを実行します。

Starting a stopped website

結論

Windows IIS を使用してウェブサイトを管理する方法を見てきました。 このチュートリアルでは、Windows Server に IIS をインストールして構成し、基本的な PHP ウェブサイトをデプロイしてテストする方法を学びました。 Windows IIS は、GUI およびコマンド ライン環境を介してウェブサイトを管理できる多機能なツールです。

この新たに得た知識を活かして、IIS上でウェブサイトやアプリケーションの構築を始める準備ができました!次に、なぜIIS上でWordPressサイトを作成する方法を学ばないのでしょうか?

Source:
https://adamtheautomator.com/windows-iis/