How to make PHP work with IIS
This is one of the poblems that we have constantly faced on window web server. Although PHP seems installed, any .php pages fail to work on browser with the error message ” Page not found”
The problem is PHP and IIS are not configured to interact and so IIS fails to recognise a .php extension.
Use the following steps in this case and Pray to upparwala that it works (typical funda with Windows!!! )
To allow IIS to know how to handle CGI scripts with the .php extension, you must add a script mapping.
In Internet Services Manager, select your web Site
Go to Properties
Go to the Home Directory tab
Click on the Configure button
Select the App Mappings tab
Insert the following: d:\path\to\php\php.exe %s %s
This is the location of the PHP executable. In addition, you can also add a similar script mapping for the .php3 extension if you so desire. You should also mark each entry as being a Script interpreter so that you can mark you directories as having Script permission and not Execute thereby making them safer.
The reason for the two % arguments is to handle multiple parameters on ISINDEX queries, which are an obscure part of the CGI spec.
——————————————————————-
Well, one of my Mentors once told me ” If you know registry, you can control Windows or it controls you!! “
So heres a method to install PHP support in IIS via registry (update to the above post)
WARNING
These steps involve working directly with the windows registry. One error here can leave your system in an unstable state. I highly recommend that you back up your registry first
===============================================
1.Run Regedit.
2.Navigate to: HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.
3.On the edit menu select: New->String Value.
4.Type in the extension you wish to use for your php scripts. For example .php
5.Double click on the new string value and enter the path to php.exe in the value data field. ex: c:\php\php.exe.
6.Repeat these steps for each extension you wish to associate with PHP scripts
The following steps do not affect the web server installation and only apply if you want your php scripts to be executed when they are run from the command line (ex. run c:\myscripts\test.php) or by double clicking on them in a directory viewer window. You may wish to skip these steps as you might prefer the PHP files to load into a text editor when you double click on them.
1.Navigate to: HKEY_CLASSES_ROOT
2.On the edit menu select: New->Key.
3.Name the key to the extension you setup in the previous section. ex: .php
4.Highlight the new key and in the right side pane, double click the “default value” and enter phpfile.
5.Repeat the last step for each extension you set up in the previous section.
6.Now create another New->Key under HKEY_CLASSES_ROOT and name it phpfile.
7.Highlight the new key phpfile and in the right side pane, double click the “default value” and enter PHP Script.
8.Right click on the phpfile key and select New->Key, name it Shell.
9.Right click on the Shell key and select New->Key, name it open.
10.Right click on the open key and select New->Key, name it command.
11.Highlight the new key command and in the right side pane, double click the “default value” and enter the path to php.exe. ex: c:\php\php.exe -q %1. (don’t forget the %1).
12.Exit Regedit.
13.If using PWS on Windows, reboot to reload the registry.
PWS and IIS 3 users now have a fully operational system. IIS 3 users can use a nifty tool from Steven Genusa to configure their script maps.
Windows and PWS 4 or newer
When installing PHP on Windows with PWS 4 or newer version, you have two options. One to set up the PHP CGI binary, the other is to use the ISAPI module dll.
If you choose the CGI binary, do the following:
1.Edit the enclosed pws-php4cgi.reg file (look into the sapi dir) to reflect the location of your php.exe. Forward slashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] “.php”=”c:\\php\\php.exe”
2.In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the ‘Execute’ checkbox, and confirm.
If you choose the ISAPI module, do the following:
1. Edit the enclosed pws-php4isapi.reg file (look into the sapi dir) to reflect the location of your php4isapi.dll. Forward slashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] “.php”=”c:\\php\\sapi\\php4isapi.dll”
2. In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the ‘Execute’ checkbox, and confirm
Windows NT/2000 and IIS 4 or newer
To install PHP on an NT/2000 Server running IIS 4 or newer, follow these instructions. You have two options to set up PHP, using the CGI binary (php.exe) or with the ISAPI module.
In either case, you need to start the Microsoft Management Console (may appear as ‘Internet Services Manager’, either in your Windows NT 4.0 Option Pack branch or the Control Panel=>Administrative Tools under Windows 2000). Then right click on your Web server node (this will most probably appear as ‘Default Web Server’), and select ‘Properties’.
If you want to use the CGI binary, do the following
1.Under ‘Home Directory’, ‘Virtual Directory’, or ‘Directory’, click on the ‘Configuration’ button, and then enter the App Mappings tab.
2.Click Add, and in the Executable box, type: c:\php\php.exe (assuming that you have unziped PHP in c:\php\).
3.In the Extension box, type the file name extension you want associated with PHP scripts. Leave ‘Method exclusions’ blank, and check the Script engine checkbox. You may also like to check the ‘check that file exists’ box - for a small performance penalty, IIS (or PWS) will check that the script file exists and sort out authentication before firing up php. This means that you will get sensible 404 style error messages instead of cgi errors complaing that php did not output any data.
4.You must start over from the previous step for each extension you want associated with PHP scripts. .php and .phtml are common, although .php3 may be required for legacy applications.
5.Set up the appropriate security. (This is done in Internet Service Manager), and if your NT Server uses NTFS file system, add execute rights for I_USR_ to the directory that contains php.exe.
To use the ISAPI module, do the following:
1.If you don’t want to perform HTTP Authentication using PHP, you can (and should) skip this step. Under ISAPI Filters, add a new ISAPI filter. Use PHP as the filter name, and supply a path to the php4isapi.dll.
2.Under ‘Home Directory’, click on the ‘Configuration’ button. Add a new entry to the Application Mappings. Use the path to the php4isapi.dll as the Executable, supply .php as the extension, leave Method exclusions blank, and check the Script engine checkbox.
3.Stop IIS completely (NET STOP iisadmin)
4.Start IIS again (NET START w3svc)

















Leave a Reply
You must be logged in to post a comment.