jmertic Thu May 21 02:41:06 2009 UTC
Added files:
/win-installer PHPInstallerScripts53.vbs
Modified files:
/win-installer PHPInstallerBase53.wxs PHPInstallerBase53NTS.wxs
Log:
Bug 47855: Remove references to apache13 sapi in vbs custom actions.
http://cvs.php.net/viewvc.cgi/win-installer/PHPInstallerBase53.wxs?r1=1.19&r2=1.20&diff_format=u
Index: win-installer/PHPInstallerBase53.wxs
diff -u win-installer/PHPInstallerBase53.wxs:1.19
win-installer/PHPInstallerBase53.wxs:1.20
--- win-installer/PHPInstallerBase53.wxs:1.19 Sat Mar 21 01:58:33 2009
+++ win-installer/PHPInstallerBase53.wxs Thu May 21 02:41:06 2009
@@ -489,7 +489,7 @@
</Feature>
</Feature>
- <Binary Id="PHPInstallerScripts" SourceFile="PHPInstallerScripts52.vbs" />
+ <Binary Id="PHPInstallerScripts" SourceFile="PHPInstallerScripts53.vbs" />
<Binary Id="WixCA" src="Wix\wixca.dll"/>
<CustomAction Id="netserveCGIInterpretersaddCmd"
http://cvs.php.net/viewvc.cgi/win-installer/PHPInstallerBase53NTS.wxs?r1=1.16&r2=1.17&diff_format=u
Index: win-installer/PHPInstallerBase53NTS.wxs
diff -u win-installer/PHPInstallerBase53NTS.wxs:1.16
win-installer/PHPInstallerBase53NTS.wxs:1.17
--- win-installer/PHPInstallerBase53NTS.wxs:1.16 Fri Feb 20 15:48:16 2009
+++ win-installer/PHPInstallerBase53NTS.wxs Thu May 21 02:41:06 2009
@@ -412,7 +412,7 @@
</Feature>
</Feature>
- <Binary Id="PHPInstallerScripts" SourceFile="PHPInstallerScripts52.vbs" />
+ <Binary Id="PHPInstallerScripts" SourceFile="PHPInstallerScripts53.vbs" />
<Binary Id="WixCA" src="Wix\wixca.dll"/>
<CustomAction Id="iis700FastCGIaddCmd"
http://cvs.php.net/viewvc.cgi/win-installer/PHPInstallerScripts53.vbs?view=markup&rev=1.1
Index: win-installer/PHPInstallerScripts53.vbs
+++ win-installer/PHPInstallerScripts53.vbs
Const ForReading = 1
Const ForWriting = 2
Sub configApache
Dim objFSO
Dim objFile
strDirective = vbCrLf & vbCrLf & "#BEGIN PHP INSTALLER EDITS - REMOVE ONLY
ON UNINSTALL" & vbCrLf
strApacheDir = Session.Property("APACHEDIR")
strPHPPath = Replace(Session.TargetPath("INSTALLDIR"),"\","/")
If ( right(strApacheDir,1) <> "\" ) then
strApacheDir = strApacheDir & "\"
End If
If ( Session.FeatureRequestState("apacheCGI") = 3 ) Then
strDirective = strDirective & "ScriptAlias /php/ """ & strPHPPath &
"""" & vbCrLf
strDirective = strDirective & "Action application/x-httpd-php """ &
strPHPPath & "php-cgi.exe""" & vbCrLf
End If
If ( Session.FeatureRequestState("apache22") = 3 ) Then
strDirective = strDirective & "PHPIniDir """ & strPHPPath & """" &
vbCrLf
strDirective = strDirective & "LoadModule php5_module """ & strPHPPath
& "php5apache2_2.dll""" & vbCrLf
End If
'If ( Session.FeatureRequestState("apache20") = 3 ) Then
' strDirective = strDirective & "PHPIniDir """ & strPHPPath & """" &
vbCrLf
' strDirective = strDirective & "LoadModule php5_module """ & strPHPPath
& "php5apache2.dll""" & vbCrLf
'End If
strDirective = strDirective & "#END PHP INSTALLER EDITS - REMOVE ONLY ON
UNINSTALL" & vbCrLf
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFileName = strApacheDir & "httpd.conf"
If objFSO.FileExists(strFileName) Then
Set objFile = objFSO.OpenTextFile( strFileName, ForReading)
Else
strFileName = strApacheDir & "conf\httpd.conf"
If objFSO.FileExists(strFileName) Then
Set objFile = objFSO.OpenTextFile( strFileName, ForReading)
Else
FatalError ("Error trying access httpd.conf file.")
Exit Sub
End If
End If
strText = objFile.ReadAll
objFile.Close
' try and comment out old directives if they exist
strText = Replace(strText,"ScriptAlias /php/","#ScriptAlias /php/")
strText = Replace(strText,"Action application/x-httpd-php","#Action
application/x-httpd-php")
strText = Replace(strText,"PHPIniDir","#PHPIniDir")
strText = Replace(strText,"LoadModule php5_module","#LoadModule
php5_module")
strText = strText & strDirective
' backup old file
strBackupFileName = strFileName & ".bak"
objFSO.CopyFile strFileName, strBackupFileName
Set objFile = objFSO.OpenTextFile( strFileName, ForWriting)
objFile.WriteLine strText
objFile.Close
strFileName = strApacheDir & "mime.types"
If objFSO.FileExists(strFileName) Then
Set objFile = objFSO.OpenTextFile( strFileName, ForReading)
Else
strFileName = strApacheDir & "conf\mime.types"
If objFSO.FileExists(strFileName) Then
Set objFile = objFSO.OpenTextFile( strFileName, ForReading)
Else
FatalError ("Error trying access mime.types file.")
Exit Sub
End If
End If
strText = objFile.ReadAll
objFile.Close
If ( InStr(strText,"application/x-httpd-php") = 0 ) Then
strText = strText & "application/x-httpd-php" & vbTab & "php" & vbCrLf
End If
If ( InStr(strText,"application/x-httpd-php-source") = 0 ) Then
strText = strText & "application/x-httpd-php-source" & vbTab & "phps" &
vbCrLf
End If
' backup old file
strBackupFileName = strFileName & ".bak"
objFSO.CopyFile strFileName, strBackupFileName
Set objFile = objFSO.OpenTextFile( strFileName, ForWriting)
objFile.WriteLine strText
objFile.Close
End Sub
Sub unconfigApache
Dim objFSO
Dim objFile
strApacheDir = Session.Property("APACHEREGDIR")
If ( right(strApacheDir,1) <> "\" ) then
strApacheDir = strApacheDir & "\"
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFileName = strApacheDir & "httpd.conf"
If objFSO.FileExists(strFileName) Then
Set objFile = objFSO.OpenTextFile( strFileName, ForReading)
Else
strFileName = strApacheDir & "conf\httpd.conf"
If objFSO.FileExists(strFileName) Then
Set objFile = objFSO.OpenTextFile( strFileName, ForReading)
Else
FatalError ("Error trying access httpd.conf file.")
Exit Sub
End If
End If
do while objFile.AtEndOfStream = false
strText = objFile.ReadLine
If ( strText = "#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL"
) Then
strEndText = objFile.ReadLine
do while strEndText <> "#END PHP INSTALLER EDITS - REMOVE ONLY ON
UNINSTALL"
strEndText = objFile.ReadLine
loop
Else
strNewText = strNewText & vbCrLf & strText
End If
loop
objFile.Close
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText
objFile.Close
End Sub
Sub configIIS4
Dim WebService
Dim WebService1
Dim Paths
Dim Nodes()
Dim NumExtensions
Dim PHPExecutable
Dim NodeCount
Dim FullPath
Dim Args, Arg, ArgCount
Dim I
Dim J
Dim K
Dim MapNode, ScriptMaps, OutMaps(), Map, MapBits
Dim fAddScriptMap
Dim DefaultDocuments
fAddScriptMap = TRUE
strPHPPath = Session.TargetPath("INSTALLDIR")
If ( right(strPHPPath,1) <> "\" ) then
strPHPPath = strPHPPath & "\"
End If
If ( Session.FeatureRequestState("iis4CGI") = 3 ) Then
PHPExecutable = strPHPPath & "php-cgi.exe"
End If
If ( Session.FeatureRequestState("iis4ISAPI") = 3 ) Then
PHPExecutable = strPHPPath & "php5isapi.dll"
End If
If ( Session.FeatureRequestState("iis4FastCGI") = 3 ) Then
fAddScriptMap = FALSE
End If
'it could all go dreadfully wrong - so set error handler for graceful exits
On Error Resume Next
Set WebService = GetObject("IIS://LocalHost/W3SVC")
If (Err.Number <> 0) Then
FatalError ("Error trying access the local web service: GetObject
Failed.")
Exit Sub
End If
' Add index.php to default documents list at server level
DefaultDocuments = WebService.DefaultDoc
If ( InStr(DefaultDocuments,"index.php") = 0 ) Then
DefaultDocuments = DefaultDocuments & ",index.php"
WebService.DefaultDoc = DefaultDocuments
WebService.SetInfo
End If
' Add index.php to default documents list of SiteId 1
Set WebService1 = GetObject("IIS://LocalHost/W3SVC/1")
If (Err.Number = 0) Then
DefaultDocuments = WebService1.DefaultDoc
If ( InStr(DefaultDocuments,"index.php") = 0 ) Then
DefaultDocuments = DefaultDocuments & ",index.php"
WebService1.DefaultDoc = DefaultDocuments
WebService1.SetInfo
End If
End If
If ( fAddScriptMap = TRUE ) Then
If ( FormatNumber(GetWindowsVersion) < FormatNumber("5.2") ) Then
'use short path syntax here
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(PHPExecutable)
PHPExecutable = objFile.ShortPath
Else
'use quotes and long name syntax
PHPExecutable = """" & PHPExecutable & """"
End If
'I may be doing the wrong thing with inheritance here - it seems to
work, however!
Paths = WebService.GetDataPaths("scriptmaps", IIS_DATA_INHERIT)
If Err.Number <> 0 Then Paths = WebService.GetDataPaths("scriptmaps",
IIS_DATA_NO_INHERIT)
If (Err.Number <> 0) Then
FatalError ("Error trying to find the nodes containing scriptmaps
:GetDataPaths Failed.")
Exit Sub
End If
For Each FullPath In Paths
Set MapNode = GetObject(FullPath)
ReDim OutMaps(0)
J = 0
For Each Map In MapNode.ScriptMaps
'split the extension from the scriptmap entry
MapBits = Split(Map, ",")
If MapBits(0) <> ".php" Then
'if the extension doesn't match any of our php ones,
preserve it
ReDim Preserve OutMaps(J)
OutMaps(J) = Map
J = J + 1
End If
Next
ReDim Preserve OutMaps(J + 1 - 1)
'add our php extensions to OutMaps
OutMaps(J) = ".php" & "," & PHPExecutable & ",1"
'write the Outmap to the current node
MapNode.Put "ScriptMaps", (OutMaps)
'setinfo to make it so
MapNode.SetInfo
Next
End If
End Sub
Sub unconfigIIS4
Dim WebService
Dim Paths
Dim Nodes()
Dim NumExtensions
Dim PHPExecutable
Dim NodeCount
Dim FullPath
Dim Args, Arg, ArgCount
Dim I
Dim J
Dim K
Dim MapNode, ScriptMaps, OutMaps(), Map, MapBits
Dim fRemoveScriptMap
fRemoveScriptMap = TRUE
'it could all go dreadfully wrong - so set error handler for graceful exits
On Error Resume Next
If ( Session.FeatureRequestState("iis4FastCGI") = 2 ) Then
fRemoveScriptMap = FALSE
End If
Set WebService = GetObject("IIS://LocalHost/W3SVC")
If (Err.Number <> 0) Then
FatalError ("Error trying access the local web service: GetObject
Failed.")
Exit Sub
End If
If ( fRemoveScriptMap = TRUE ) Then
'I may be doing the wrong thing with inheritance here - it seems to
work, however!
Paths = WebService.GetDataPaths("scriptmaps", IIS_DATA_INHERIT)
If Err.Number <> 0 Then Paths = WebService.GetDataPaths("scriptmaps",
IIS_DATA_NO_INHERIT)
If (Err.Number <> 0) Then
FatalError ("Error trying to find the nodes containing scriptmaps
:GetDataPaths Failed.")
Exit Sub
End If
For Each FullPath In Paths
Set MapNode = GetObject(FullPath)
ReDim OutMaps(0)
J = 0
For Each Map In MapNode.ScriptMaps
'split the extension from the scriptmap entry
MapBits = Split(Map, ",")
If MapBits(0) <> ".php" Then
'if the extension doesn't match any of our php ones,
preserve it
ReDim Preserve OutMaps(J)
OutMaps(J) = Map
J = J + 1
End If
Next
'write the Outmap to the current node
MapNode.Put "ScriptMaps", (OutMaps)
'setinfo to make it so
MapNode.SetInfo
Next
End If
End Sub
Sub FatalError(Message)
MsgBox Message & " You will need to manually configure the web server.",
vbExclamation, "Error"
End Sub
Function GetWindowsVersion
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_OperatingSystem",,48)
For Each objItem in colItems
ver=objItem.Version
Next
GetWindowsVersion = Left(ver,3)
End Function
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php