I know from reading this newsgroup that installing the combination below is always problematic but please have mercy, I am going completely nuts with this one. I have PHP4.1.2 on Win XP trying to run with the ISAPI module on IIS 5.1. Here's the story so far.
Unpacked standard PHP dist to C:\Php.
Added some extra dlls and extensions from the PHP4Win people.
Copied php4ts.dll to C:\Windows\system32.
Added C:\Php, C:\Php\dlls, C:\Php\extensions to the PATH environment variable.
Applied read and execute permision for the Users group (which includes IUSR_xxx and IWAM_xxx)
to C:\Php, subfolders and files.
Renamed the php.ini-recommended to php.ini and copied to C:\Windows.
Modified php.ini file as follows:
allow_call_time_pass_reference = On
display errors = On
display_startup_errors = On
log_errors = On
track_errors = On
html_errors = On
error_log = "C:\Php\error.log"
variables_order = "EGPCS"
gpc_order = "GPC"
default_charset = "iso-8859-1"
include_path = ".\"
doc_root = ".\;C:\Inetpub\wwwroot\"
extension_dir = "C:\Php\extensions\"
cgi-force-redirect = 0
extension=php_bz2.dll
. ;Several extensions enabled
. ;too many to list
extension=php_zlib.dll
tab-width=4
Also added a [debugger] section for DBG:
[debugger]
debugger.enabled = true
debugger.JIT_host = clienthost
debugger.JIT_port = 7869
debugger.profiler_enabled = true
Well thats the setup, now here's my results so far.
This setup works perfectly from the command line and from IIS in cgi mode.
However, as soon as I switch to ISAPI mode (which is the one I need) it breaks.
I get the dreaded message boxes 'Unable to load xxx.dll'. One for each of the enabled extension dlls.
I have used the Filemon tool from sysinternals.com to see what is going on with the ISAPI and can see
nothing wrong. The IIS server process opens and loads php4isapi.dll and then opens and reads the
browscap.ini file. The IIS process then starts to load the extension dlls and correctly indicates the
directory as C:\Php\extensions\ but after reading each dll image IIS accesses C:\Php\error.log which
is when the 'Unable to load' dialog is displayed. Apart from the error sequence the actual access and
reading of each dll as displayed in FileMon looks the same as for the cgi. I thought it might be a permissions problem and granted Full control to Everyone for the C:\Php folder but without success.
Anybody have any ideas or hints. I've been asked to get PHP4 running on XP using IIS specifically
in ISAPI mode (they have enough of a clue to know its faster). If it turns out to be unstable, etc thats
ok since this is an evaluation exercise. But I don't really want to lose face by admitting defeat on just
the installation. Remember this works fine from the command line and for cgi mode so that would
seem to rule out a path or general permissions problem. I think this must be a more specific
permissions problem to do with the ISAPI mechanism in IIS and in particular may only occur on an
XP/IIS5.1. I thought it might be the IUSR_xxx deny ACLs in C:\Windows\system32 which are unique
to XP I think. I removed the deny ACL from C:\Windows\system32\cmd.exe but that didn't help either.
Anyway, my neurons are completely burnt out on this one and I need a helping hand.
Any kind soul got any bright ideas ???