さて今回はServer CoreのIIS7の設定変更を行ってみたいと思います。
リモートから管理する方法も含めると方法はいろいろとあるようですが、
今回はローカルからAppCmd.exeを使用して行ってみます。
[参考文献]
IIS.net:Getting Started with AppCmd.exe
AppCmd.exeは%windir%\System32\inetsrvにあるのですがこのディレクトリは通常パスが通っていないので
AppCmdを使用する時はフルパスで使用するか、%windir%\System32\inetsrvに移動してから使用します。
(あるいは%windir%\System32\inetsrvにパスを通します)
まず現在のサイトの状況を見てみます。
C:\Windows\System32\inetsrv>appcmd list site SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)
当然、Default Web Siteしかありません。
ここに以下の要領でサイトを追加してみます。
ID:2
Webサイト名:Web Site2
コンテンツディレクトリ:%SystemDrive%\inetpub\wwwroot2
ポート:8080
AppCmdではコンテンツディレクトリC:\inetpub\wwwroot2は自動的に作成されるわけではないようなので
あらかじめ自分で作っておいてからAppCmdでWebサイトを追加します。
C:\Windows\System32\inetsrv>appcmd add site /name:"Web Site2" /id:2 /bindings:"http/*:8080:" /physicalPath:"%SystemDrive%\inetpub\wwwroot2" SITEオブジェクト "Web Site2"を追加しました APPオブジェクト "Web Site2/"を追加しました VDIRオブジェクト "Web Site2/"を追加しました C:\Windows\System32\inetsrv>appcmd list site SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started) SITE "Web Site2" (id:2,bindings:http/*:8080:,state:Started)
Webサイトの追加はうまくいったようです。
また今回Web Site2のポートにしたTCP 8080にリモートから接続できるように
ファイアーウォールの設定を行います。
C:\>netsh advfirewall firewall add rule name="Connect to Web Site2" dir=in action=allow protocol=tcp localport=8080 OK
ここで前回 も使用したTest.aspとTest.incをC:\inetpub\wwwroot2にコピーして
"Web Site2"が正しく機能していることを確認します。
次はアプリケーション/仮想ディレクトリを追加してみます。
C:\inetpub\wwwroot2下にappディレクトリを作成し以下のコマンドを実行します。
C:\Windows\System32\inetsrv>appcmd add app /site.name:"Web Site2" /path:/app /physicalPath:"%SystemDrive%\inetpub\wwwroot2\app" APPオブジェクト "Web Site2/app"を追加しました VDIRオブジェクト "Web Site2/app"を追加しました
Test.aspとTest.incをC:\inetpub\wwwroot2\appにコピーして動作確認をします。
今回参考にしたIIS.netのサイトの情報は例文が多く非常にわかりやすかったのですが、
その他にマイクロソフトのサイトでAppCmdの情報を探したところ以下がありました。
[関連記事]
[Win2008RC1]Server CoreにIIS7をインストール