関連する記事 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 の 仮想ディレクトリ登録
|
【その他の最新記事】