WebMatrix からの直接アップロードを可能とする IIS Web 配置サービスの設定
手持ちの IIS 7 に WebMatrix からのアップロードがうまくいかない、という声がちらほらと聞こえてまいりましたので、急きょ記事をアップすることになりました。
ということで、今回の記事は、WebMatrix の [ 配置 ] の機能を使用して アプリケーションをアップロード可能な IIS 7 の構成方法についてです。
初めに残念なお知らせをしておきますと、WebMatrix からのデプロイ ( [ Web 配置 ] ) を受け入れ可能なのは、Windows Server 2008 などのサーバー OS 付属の IIS であり、Windows 7 などのクライアント OS 付属の IIS にはデプロイ先として構成することはできません。
これは、WebMatrix のデプロイ機能が IIS の管理サービスを必要とするためです。
そんなわけで、クライアント OS をお使いの方は、FTP を使用してアップロードするようにしてください。
なお、FTP 7.5 その他もろもろの IIS の設定手順につきましては、以下の記事内のリンクをご参照ください。
IIS7.x サーバーのリソース調整関連の簡易リンク集
https://blogs.msdn.com/b/osamum/archive/2010/10/27/iis7-x.aspx
“おれのマシンにはサーバーOS が載ってるぜいっ!!” という方は、おめでとうございます、以下の方法で IIS に WebMatrix からの [ Web 配置 ] が可能なように構成してみてください。
準備
Microsoft Web Deploy のインストール
Web Platform Installer 3.0 を使用して、Web 配置ツール 2.0 ( Microsoft Web Deploy 2.0 ) をインストールします。
自動でセットアップされた状態では、リモート配置に必要な [管理サービスの委任 UI] などの機能がインストールされませんので、Windows の [プログラムと機能] から Microsoft Web Deploy 2.0 のインストーラーを起動し、インストーラーの [変更] ボタンをクリックして、インストール可能なすべての機能をインストールします。
図 : [プログラムと機能] のアプリケーションリストを右クリックしたところ
アクセス権の設定
Web Deploy の配置プロセスの動作は、リモート接続した IIS マネージャーと同じ Local Service アカウントで実行されます。
そのため、Web Deploy の配置プロセスがアクセスするフォルダやファイルには、Local Service アカウントに対し、適切なアクセス権を付与しておく必要があります。 (※本当であれば専用のユーザーアカウントを作成したほうが良いのですが、手順が複雑になるので今回はこれでいきますよ。)
具体的には、以下のパスでLocal Service アカウントに対する必要な権限を付与します。
アカウント : Local Service パス : C:\windows\system32\inetsrv\config 権限 : 読み取り パス : C:\windows\system32\inetsrv\config\applicationHost.config 権限 : 書き込み パス : Web サイトの物理フォルダ 権限 : 読み取り、書き込み |
[ IIS ] 管理サービスの委任設定
サーバーの管理者権限を持たないユーザーアカウントにアプリケーションの配置を許可させるため、管理サービスの委任設定を行います。
具体的な手順は以下のとおりです。
IIS マネージャーを起動します。
画面左の [接続] ペインで、サーバー名を選択します。
画面中央のワークスペース [機能ビュー] で [管理サービスの委任] アイコンをダブルクリックします。
[管理サービスの委任] のルールリストが表示されるので、画面右の [操作] ペインで [ 規則の追加… ] リンクをクリックします。
[規則の追加] ダイアログボックスが表示されるので、テンプレートのリストビューより [ コンテンツのあるアプリケーションの展開 ] を選択し、[OK] ボタンをクリックします。
規則を定義するための項目を持ったダイアログボックスが表示されるので、各項目のドロップダウンを以下のように設定し [OK] ボタンをクリックします
[ユーザーを規則に追加] ダイアログボックスが表示されるので、同ダイアログボックス内の各項目を以下のように設定し [OK] ボタンをクリックします。
[名前] “*”
[アクセスの種類] “許可”
以上でアプリケーション配置のためのサービスの委任設定は完了です。
[IIS] IIS マネージャーのアクセス許可設定
サーバーの管理者権限を持たないユーザーアカウントに、IIS Web サイトの管理操作を行わせるには、作業対象となる Web サイトにてあらじめ該当アカウントに対しアクセス許可を設定しておく必要があります。これは Web Deploy のリモート配置でも同様です。
ここで設定するユーザーアカウントが、WebMatrix の [配置] ダイアログボックスに指定するユーザーになります。このユーザーアカウントは、ドメイン、マシンローカル、あるいは IIS 管理ユーザーでも構いません。
管理者権限を持たないユーザーアカウントに対し、IIS Web サイトへの管理アクセスを許可するための具体的な設定手順は以下の通りです。
IIS マネージャーを起動します。
画面左の [接続] ペインで目的の Web サイトを選択します。
画面中央のワークスペース、[機能ビュー] で [ IIS マネージャーのアクセス許可 ] アイコンをダブルクリックします。
[ IIS マネージャーのアクセス許可 ] のアカウントリストが表示されるので、画面右の [操作] ペインで [ユーザーの許可] リンクをクリックします。
[ユーザーの許可] ダイアログボックスが表示されるので、[ユーザー種類の選択] で、選択するユーザーアカウントの属性に合わせ [Windows] または [IIS マネージャー] オプションボタンにチェックをつけ [選択] ボタンをクリックします。
ユーザーアカウントを選択するダイアログボックスが表示されるので、該当のユーザーを選択し、[OK] ボタンをクリックします。
以上で [ IIS マネージャーのアクセス許可 ] の設定は完了です。
アカウントリストに選択したユーザーアカウントが表示されていることを確認してください。
[IIS] 管理サービスの開始
WebMatrix が使用する Web Deploy のリモート配置では IIS 管理サービスを利用するため、管理サービスを開始しておく必要があります。( ※ 逆に Web 配置エージェントサービス を動かす必要はありません )
IIS 管理サービスを開始する手順は以下の通りです。
IIS マネージャーを起動します。
画面左の [接続] ペインで、サーバー名を選択します。
画面中央のワークスペース、[機能ビュー] で [管理サービス] アイコンをダブルクリックします。
[管理サービス ] の設定画面が表示されるので、画面右の [操作] ペインで [開始] リンクをクリックします。
なお、このとき [ リモート接続を有効にする ] チェックボックスにチェックが付いていることを確認してください。
以上で、Web 配置エージェントサービスの開始作業は完了です。サービスの一覧で、[状態] フィールドが [開始] になっていることを確認してください。
以上で [管理サービス] の開始は完了です。なお、[ポート] の設定が既定の 8172 であれば、クライアントは接続の際に、ホスト名横にポート番号を記述する必要はありません。
WebMatrix からのアプリケーションの配置
WebMatrix の [ 配置] 機能から [Web 配置] (Web Deploy) プロトコルを使用し、IIS Web サイトへアプリケーションを配置するまでの手順について説明します。
検証用アプリケーションの作成
本手順では、説明内容および動作について、誰しもが追試再現可能とするため、アプリケーションとして、WebMatrix の提供しているテンプレート、「フォトギャラリー」を使用して作成したコンテンツを使用します。
具体的な手順は以下の通りです。
WebMatrix を起動します。
トップ画面で [ テンプレートからサイトを作成する ] アイコンをクリックします。
テンプレートの一覧が表示されるので、「フォトギャラリー」を選択し、[OK] ボタンをクリックします。
以上で検証用アプリケーションの作成は完了です。
WebMatrix の作業画面が表示されるので、ツールバー上の [ 実行] ボタンをクリックし、アプリケーションが正しく起動するか確認してください。
Web Deploy を使用した検証用アプリケーションの配置
前述の手順にて作成した検証用アプリケーションを Web Deploy を使用して配置するには、以下の順を実行します。
WebMatrix のツールバー [ホーム] タブ内の [ 発行 ] アイコンの [▼] (下向き三角) 部分をクリックし、表示されたメニューより [設定…] を選択します。
[発行の設定] ダイアログボックスが表示されるので、同ダイアログボックス内の各項目を以下のように設定します。
[プロトコル] “Web 配置”
[サーバー] サーバー名 ※IIS 管理サービスのポート番号を既定のものから変更している場合は、サーバー名の横に : (セミコロン) とポート番号を記述する必要があります。
[ユーザー名] IIS マネージャーにて、目的のWeb サイトに対し [IIS マネージャーのアクセス許可] を行ったユーザーアカウント名を指定します。
[パスワード] [ユーザー名] に指定したアカウントのパスワードを指定します。
[サイト名] 目的の Web サイトの、IISマネージャー内で使用されている名前を指定します。
[宛先 URL] アプリケーションの配置先の URL を指定します。
[ 接続の検証 ] ボタンをクリックして、設定した情報で Web サイトアクセス可能であるか確認します。初回使用時など、証明書に関する警告ダイアログボックスが表示される場合がありますが、その場合は [Continue] ボタンをクリックして続行します。
[ 接続の検証 ] ボタン横に、緑色のチェックアイコンとともに “Connected successfully” と表示されるのを確認し [発行] ボタンをクリックします。
[ 発行プレビュー ] 画面に切り替わり、配置されるコンテンツの一覧が表示されます。[PhotoGallery.sdf] チェックボックスにチェックをつけ [続行] ボタンをクリックします。
WebMatrix のウィンドウ下部にアップロードの状況が表示されるので、最後に以下のメッセージが表示されることを確認します。
Publish Complete : アプリケーションの URL
以上の手順で、WebMatrix からの Web 配置 を使用したコンテンツの配置作業は完了です。
IIS マネージャーを起動し、実際にコンテンツが配置されているかを確認するとともに、アプリケーションが正しく実行できることを確認してください。
おまけ : WebMatrix からの Web サイト下のサブフォルダへのアプリケーション配置について
WebMatrix では [ 発行の設定 ] ダイアログの [サイト名] と [宛先 URL] ボックスで、各々サブフォルダ名を追加することで、サブフォルダへのアプリケーションの配置が可能です。
なお、指定されたサブフォルダは自動的に作成されます。
以下の画面ショットの例では、contoso という Web サイトの下に gallery というサブフォルダを指定しています。
今回は Web 配置を使用したWeb アプリケーションの配置の手順のみを紹介させていただきました。
SQL Server、MySQL などのデータベースを配置する場合は、IIS の [サービスの委任] (Management Service Delegation) で、データベース展開のためのルールを作成する必要があります。
詳しくは以下のドキュメントをご参照ください。
Web 配置プロバイダー
https://technet.microsoft.com/ja-jp/library/dd569040(WS.10).aspx
Web 配置 dbFullSql プロバイダー
https://technet.microsoft.com/ja-jp/library/dd569036(WS.10).aspx
Web 配置 dbMySql プロバイダー
https://technet.microsoft.com/ja-jp/library/dd569017(WS.10).aspx
IIS.NET - Configure Web Deploy
https://learn.iis.net/page.aspx/984/configure-web-deploy/