関連する記事
VBScript : IIS7 の 仮想ディレクトリ登録
ブラウザでダウンロード
ダウンロードした iis_vdir.lzh を解凍して、create_vdir.wsf を実行するだけで、
そのディリクトリを仮想ディレクトリとして IIS (既定の Web サイト) に登録します。
.php で、php-cgi.exe を登録します。
Root 仮想ディレクトリに 既に登録されていても上書きします
IIS Admin オブジェクトのリファレンスは こちら( IIsWebServer ) です。
開始・停止したい場合は、IIsWebServer オブジェクトで Start または Stop メソッドを使用します
仮想ディレクトリを作成しているのは、IIsWebVirtualDir オブジェクトです
ScriptMaps は、こちらから取る必要があります( IIsWebServer オブジェクトでは足りませんでした )
<JOB>
<OBJECT id="WshShell" progid="WScript.Shell" />
<OBJECT id="Fso" progid="Scripting.FileSystemObject" />
<SCRIPT language="VBScript" src="crun.vbs"></SCRIPT>
<SCRIPT language=VBScript>
' ***********************************************************
' 処理開始
'
' 既存の仮想ディレクトリでも、物理パスを変更可能
' ***********************************************************
' Cscript.exe で実行する
crun
' スクリプトが存在するディレクトリと名前
strCurPath = WScript.ScriptFullName
Set obj = Fso.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurPath = obj.Path & ""
strName = obj.Name
strPhp = "C:\php-5.2.8-Win32\php-cgi.exe"
' 仮想ディレクトリのパスを「既定の Web サイト」として設定
strVDir = "IIS://localhost/W3SVC/1/Root/" & strName
' 仮想ディレクトリが既に存在するフラグ
bExist = True
on error resume next
' 仮想ディレクトリのオブジェクトを取得
Set IIsWebVDirObj = GetObject(strVDir)
if Err.Number <> 0 then
' 新規
Set IIsWebVDirRootObj = GetObject("IIS://localhost/W3SVC/1/Root")
Set IIsWebVDirObj = _
IIsWebVDirRootObj.Create("IIsWebVirtualDir", strName )
' 物理パスを設定
IIsWebVDirObj.Put "Path", strCurPath
' 新規仮想ディレクトリ
bExist = False
else
Set IIsWebVDirRootObj = GetObject("IIS://localhost/W3SVC/1/Root")
' 変更( 物理パスが変わっていても、ここでセットされる )
IIsWebVDirObj.Put "Path", strCurPath
end if
on error goto 0
' ルートの仮想ディレクトリのマッピングに追加して PHP を使用できるように構成
strMap = ""
bTarget = False
For each value in IIsWebVDirRootObj.ScriptMaps
strCheck = Ucase((Split( value, "," ))(0))
if strCheck = ".PHP" then
strMap = strMap & vbTab & ".php," & strPhp & ",5,GET,POST"
bTarget = True
else
if strMap <> "" then
strMap = strMap & vbTab
end if
strMap = strMap & value
end if
Next
if Not bTarget then
strMap = strMap & vbTab & ".php," & strPhp & ",5,GET,POST"
end if
IIsWebVDirObj.Put "ScriptMaps", Split(strMap,vbTab)
' .asp ファイルの実行を許可
IIsWebVDirObj.Put "AccessScript", True
' 実行可能ファイルの実行を許可
IIsWebVDirObj.Put "AccessExecute", True
' クライアントが要求したリソースに対するアクセス
IIsWebVDirObj.Put "AccessSource", True
IIsWebVDirObj.Put "AccessRead", True ' 読み取り
IIsWebVDirObj.Put "AccessWrite", True ' 書き込み
IIsWebVDirObj.Put "EnableDirBrowsing", True ' ディレクトリの参照
' ログファイルに書き込むかどうか( False で書き込む )
IIsWebVDirObj.Put "DontLog", False
' このリソースに索引を付ける
IIsWebVDirObj.Put "ContentIndexed", False
' インプロセス (0)、アウトプロセス (1)、またはプロセスプール内 (2)
' 2 が 中なので注意
IIsWebVDirObj.AppCreate2 2
' アプリケーションの名前
IIsWebVDirObj.Put "AppFriendlyName", "php実行可能ディレクトリ"
IIsWebVDirObj.Put "AspAllowSessionState", True ' セッション有効
IIsWebVDirObj.Put "AspSessionTimeout", 20 ' セッションタイムアウト(分)
IIsWebVDirObj.Put "AspBufferingOn", True ' バッファ処理
IIsWebVDirObj.Put "AspEnableParentPaths", True ' ..\ 表記を使用可能
IIsWebVDirObj.Put "AspScriptTimeout", 90 ' スクリプトタイムアウト(秒)
' 既定のドキュメントを読み込むようにする
IIsWebVDirObj.Put "EnableDefaultDoc", True
' 既定のドキュメント
IIsWebVDirObj.Put "DefaultDoc", "index.htm,index.html,index.php"
' ASP ファイルをキャッシュしない
IIsWebVDirObj.Put "AspScriptFileCacheSize", True
' 書き込み
IIsWebVDirObj.SetInfo
if bExist then
Wscript.Echo "仮想ディレクトリ " & strName & " を変更しました"
else
Wscript.Echo "仮想ディレクトリ " & strName & " を作成しました"
end if
</SCRIPT>
</JOB>
*************************************************************
■このスクリプトが置かれたディレクトリを
仮想ディレクトリとして登録
*************************************************************
1) list_iis.wsf で、既定の Web サイトの情報を取得
2) create_vdir.wsf で作成または変更
仮想ディレクトリ名は実際のディレクトリ名が使われますが、
任意の名前にしたい場合は、22 行目の
strName = obj.Name
を
strName = "任意の名前"
に変更して下さい。
※ php の情報は strPhp = "C:\php-5.2.8-Win32\php-cgi.exe" を変更
※ 別のディレクトリで実行すると、その場所で更新になります
※ crun.vbs は外部ライブラリファイル
※ phpinfo.php は、php 実行確認用
※ check.asp は、asp 実行確認用
※ view.htm は、check.asp より #include しています
【チェック】
ディレクトリの権限で、少なくとも Users グループが登録されている必要があります
ファイルの書き込みを行う場合は、Users グループをフルコントロールにすると
問題を回避できると思います
■著作権その他
このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。
lightbox
関連する記事
VBScript : IIS7 の 仮想ディレクトリ登録
posted by
at 2009-08-28 17:27
|
その他
|
|