On IIS 5.1 (Windows XP) and IIS 6.0 (Windows Server 2003) the following installation method goes very smoothly, but for three additional tasks.
Before installing PHP 5.2.x using the Microsoft Web Platform Installer, make sure:
C:\PHP does not exist
C:\Program Files\PHP does not exist (it will be created)
C:\Windows\php.ini does not exist (you won't need it there)
Run Microsoft Web Platform Installer allowing it to install FastCGI support and PHP 5.2.x.
After installation you should have PHP installed in C:\Program Files\PHP.
An examination of php.ini will show you will not likely need to change any settings, except the sendmail_from address. The Windows specific settings have been set, but are grouped together under:
; Default timeout for socket based streams (seconds)
In addition to having the correct minimal IIS settings already set in php.ini, you will find the Path has had C:\Program Files\PHP\ added, and the environment variable PHPRC is set correctly.
The three things not performed by the install but needed to run:
HKEY_LOCAL_MACHINE\Software\PHP\IniFilePath may be wrong. It should not be C:\Windows, but C:\Program Files\PHP, which is what is set in both the PATH and PHPRC. (This could be a left over setting from a previous install, but the installer does not correct it.)
In IIS manager, under the default web site properties, Home Directory (tab), Configuration (button), Mappings, the entry for .php may be missing or wrong. It should be:
Executable: "C:\Program Files\PHP\php-cgi.exe" with the quotes.
Verbs: Limit To: GET,HEAD,POST,TRACE
Script Engine checkbox checked
Check That File Exists checkbox checked.
The installer will not set the proper security permissions for php-cgi.exe or php.ini, both of which need to be accessible to the default Internet user account: e.g. IUSR_machine name.
In Windows Explorer, navigate to the C:\Program Files\PHP folder, right click, properties, security (tab), add IUSR_machinename and accept the default security permissions.
All of these seemed to take effect without a reboot, but a reboot is suggested. Note: Items 1 and 2 may be left over from previous installations and might possibly be rightly ignored by the installer, but if they are not corrected (at least check) you are going to have a problem.
Item 3 is not going to be performed by the installer. You will have to do it based on how you have security permissions set in IIS.