Wasted at least a day tracking this down. It started with trying to run a PHP page and getting an error:
winsock.dll unusable. 1009
Clear as mud. Lots of red herrings: FastCGI versus CGI, differing PHP versions, directory permissions, metabase script maps, something not quite right in the application install. Was not any of those. PHP pages worked just fine in directories that allowed anonymous access. Add the requirement for authentication and get the above error.
Turned out the answer was the permissions on the registry key:
Needed to add “read” access for user IUSR_MERCURY (where “mercury” is the name of the computer) to the remove the error. Not exactly obvious.
Along the way found - once again - there are a lot of scummy sites on the web in popular places, looking to attract traffic with worthless information. Search on the above error - you will find lots.
What finally lead to the solution:
IIS5.0 “Invalid Default Script Language” This error is usually caused by lack of permissions. Check the following:
1. Make sure the Users group has Read/Execute permissions to the \windows\system32\inetsrv folder and \inetpub\wwwroot and any other content folders for your site. 2. Make sure the anonymous account(IUSR_machinename) has Read permissions to the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Classes and all subkeys 3. Make sure the Users group has Read permissions on the following registry key: HKEY_CLASSES_ROOT
Jackie Jaynes [MSFT] Microsoft IIS
Something to add to the PHP installation (or the like) as a check, it seems.