web 2008 導入 (2) – FTP7.5

サーバーに FTP7 をインストールし、設定します。

http://www.iis.net/extensions/FTP などにアクセスして ftp7_x86_75.msi をダウンロード。そしてダブルクリック。

 

設定

http://blog.livedoor.jp/aspplus/archives/51433877.html

FTP の PASV な設定

appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:5000 /highDataChannelPort:5999
netsh advfirewall set global statefulftp enable

 

Windows Firewall に穴あけ

netsh advfirewall firewall add rule name="My FTP 21" enable=yes dir=in action=allow protocol=TCP localport=21

 

 

動作確認

今回、動作確認用のクライアントは FFFTP でなく WinSCP を使ってみます。

FTP のホストやアカウントなど。アカウントには縦棒 | が含まれています。ゴミじゃありません。

ドロップダウンリストで FTP を選択。

Passive mode のチェックボックスをオン。

成功するとこんな感じ。

 

以上

大混乱

IIS6 でなく IIS7 のマネージャは Convert to Application とか Add Application… とメニューに出るようになっている。

(図1)

(IIS6 と考え方が異なるような気がして) IIS7 触り始めたころは、これ (Convert to や Add) になじめずに気持ち悪かったが、最近は IIS6 がどうだったか忘れてしまった。IIS7 になじんでしまった。

 

↓IIS6 のアプリ作成ボタンの図がこれ。

http://aspplus.nobody.jp/200612/16/1216.htm

 

今週は tryiis7mgr に仮想ディレクトリ設定・設定解除する機能を追加したのだが、これが元で大混乱発生。思っていたより仮想ディレクトリ・アプリケーション指定は複雑だった。

(図2) これは /vdir 仮想ディレクトリ (/ アプリに所属する /vdir 仮想ディレクトリ) をアプリに変換する前の applicationHost.config

(図3) これは変換後の applicationHost.config。(/ アプリに所属する /vdir 仮想ディレクトリ) が無くなって、(/vdir アプリに所属する / 仮想ディレクトリ) になっている。

(図4) コードで実現するなら、VirtualDirectory を Remove してから Application を Add する必要あり。VirtualDirectory の Remove を忘れると、Application の Add で落ちる。

 

(図2) や (図3) はまだきれいで簡単だ。VirtualDirectory の path がきれいに Application の path の中に納まっているから。

 

以下は複雑で嫌になる例。なぜこのように複雑になるのかは不明。

<site name="asaitama Web" id="5">
    <application path="/" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot" />
        <virtualDirectory path="/xxx1" physicalPath="E:\Account\asaitama\webapps\banana" />
        <virtualDirectory path="/xxx2" physicalPath="E:\Account\asaitama\webapps\banana" />
        <virtualDirectory path="/xxx3" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx3/xxx4" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx3/xxx4/xxx5" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/vdir_to_apple" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx4" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx4/xxx5" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx2/xxx6" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx1/xxx7" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/vdir_to_apple/xxx8" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/kiwi/kiwi2/vdir2kiwi" physicalPath="E:\Account\asaitama\webapps\_wwwroot\kiwi" />
        <virtualDirectory path="/vdir2root" physicalPath="E:\Account\asaitama\webapps\_wwwroot" />
    </application>
    <application path="/lemon" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot\lemon" />
        <virtualDirectory path="/red/aaa" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/bbb" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/zzz" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/yyy" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/xxx" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/vdir_to_apple" physicalPath="E:\Account\asaitama\webapps\apple" />
    </application>
    <application path="/orange" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot\orange" />
    </application>
    <application path="/lemon/red/vdir_to_apple" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\apple\" />
    </application>
    <application path="/lemon/red" applicationPool="pool_asaitama_i">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot\lemon\red" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:80:www.saitama.useiis7.net" />
    </bindings>
    <logFile directory="E:\Account\asaitama\LogFiles" />
    <traceFailedRequestsLogging enabled="true" directory="E:\Account\asaitama\FailedReqLogFiles" />
</site>

/lemon/red/vdir_to_apple が二箇所に出現している!
red/aaared/bbb などは /lemon の中でなく /lemon/red の中に存在してほしい、、、がそうではない。

 

増改築を重ねて複雑になったコード(VirtualDirectory 追加・削除に対応させたコード)をきれいに書き直したい気がする。。。が止めておく。

web 2008 導入 (1) – IIS7

Microsoft スキル チャージ プログラム ‐ 第 3 弾 「Web サーバー導入キット」のモニターに当選したので、Windows Web Server 2008 の導入過程をこのブログに記録します。

ハードウェア

サーバー機、HP ProLiant ML110 G5 はメモリーが 1G だったので、2G 追加して合計 3G にしました。メモリー等の増設はできればやりたくない作業。力の加え加減がわからず、機械を壊しそうで怖い。筐体のふたを開けて、パーツとパーツの間に手を突っ込むのが嫌。特に、2009/4/19 (土) の日中は部屋が暑くて暑くて・・・(部屋にエアコンが無いのです)

OS インストール

なんとかメモリーを取り付けて、ProLiant に付属の Easy Set-up CD から起動すると、Windows のライセンス キー入力を求めてきた。それなら Easy Set-up CD 使うのは止めだ。ライセンス キー入力はぎりぎりまで先送りにしたいのです。(web 2008 は 60 日の猶予がある)

web 2008 の DVD から起動し、普通に OS インストール完了。

UAC

使い方がわからないので UAC (User Account Control) をオフ。

PowerShell

PowerShell をインストール。

servermanagercmd -i PowerShell

 

PowerShell スクリプトの実行を可能にするために PowerShell の窓から。

Set-ExecutionPolicy RemoteSigned

 

IIS の ASP.NET 関連

IIS7 の ASP.NET 関連を入れます。

servermanagercmd -i Web-Server
servermanagercmd -i Web-Asp-Net
servermanagercmd -i Web-Http-Tracing
servermanagercmd -i Web-Http-Redirect
servermanagercmd -i Web-IP-Security
servermanagercmd -i Web-Mgmt-Service

 

IIS リモート管理

サービスを自動起動にする

sc.exe config wmsvc start= auto

 

IIS マネージャを起動し、[Management Service] アイコン、[Enable remote connection] のチェックボックスを on にし、Apply をクリック。

サービスを今すぐスタート。

net start wmsvc

 

Windows Defender

Defender 以外も入りますが。。。

servermanagercmd -i Desktop-Experience

SpyNet: basic membership
Check for updated definisions before scanning: Yes

FTP 7.5

IIS.net から ftp7_x86_75.msi をダウンロードしてダブルクリック。

File Server Resource Manager

英語版だと Windows Update の Optional に現れたのですが、日本語版の場合は意識して、Windows6.0-KB940518-x86.msu をダウンロードしてダブルクリックする必要あり。

ダブルクリック後に

servermanagercmd -i FS-Resource-Manager

 

ASP.NET State Service

sc.exe config aspnet_state start= auto
net start aspnet_state

 

続きは、次の土日に。。。