Partner and Community Forums
PHP 5 on IIS 6 "The specified procedure could not be found."
Last post Jun 03, 2010 12:53 PM by Aluin
Jun 03, 2010 11:02 AM|Aluin|LINK
I was recently given the task of installing PHP on an established Windows 2003 server which is currently hosting multiple websites (which means I have limited options as far as reinstalling, rebooting, etc). I used the Web Platform Installer to install
PHP 5.2.13 and restarted IIS. When I first tried to render a .php page I would get a 404 error. After some research I set the PHP web service extension to 'allowed' in IIS. After that, .php (with simple "hello world" and phpinfo() code) pages would then
only display "The specified procedure could not be found".
I assumed that the Web Installer would handle most of the settings for me so I haven't changed much. I did, however, notice that the .php mapping was set to "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\php5ts.dll" I tried changing it to "C:\WINDOWS\system32\inetsrv\fcgiext.dll"
and restarting to no avail. I have also uninstalled PHP and FastCGI with no luck.
I know this isn't very much information to go on, but any instructions or help would greatly be appreciated.
Jun 03, 2010 12:06 PM|don.raman|LINK
I did, however, notice that the .php mapping was set to "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\php5ts.dll"
How did this happen? Did you have PHP instaled on this machine before. Please clear all previous instance of PHP including deletion of folder, deletion of any registry key etc.
You can troubleshoot your PHP installation by following my blog at
http://blogs.iis.net/donraman/archive/2009/11/15/troubleshooting-php-installation-on-windows.aspx. Please see if you have got everything correct and paste the output of each command here.
Jun 03, 2010 12:29 PM|Aluin|LINK
Thanks very much for the reply. I had actually gone over your tutorial before. That's why I brought up the strange php5ts.dll reference. The output from the commands are as follows:
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
DefaultDoc : (STRING) "Default.aspx,Default.htm,Default.asp,index.htm,index.php"
As far as anyone can tell me, asp.net is the only other language that was being used; I'm not really sure why that reference is there.
When I change the mapping to C:\WINDOWS\system32\inetsrv\fcgiext.dll the second command you give me returns the correct string but then I don't even get my original "The specified procedure could not be found" error. Instead I receive a 404.
As a further note, I have double checked all of the other steps on your blog and everything else is in the right place. I am going to clean the registry of anything regarding php and uninstall/clean php out as best as I can again - then reinstall. Thanks
again for the advice.
Jun 03, 2010 12:53 PM|Aluin|LINK
I cleared the registry of any PHP references, removed the .php mapping, uninstalled both FastCGI and PHP, deleted the folders, and reinstalled using the web installer. Now
"cscript.exe C:\inetpub\AdminScripts\adsutil.vbs GET w3svc/ScriptMaps | findstr php"
doesn't return anything. I assumed the installer would have added the mapping for php but it didn't. After manually adding it the findstr returns the correct line, but I still get 404 errors.