How to install PHP on IIS
*Updated Recommendations - Please read the following instructions for running PHP fast and reliably*
The FASTEST and EASIEST way to install PHP on IIS is using Microsoft’s Web Platform installer. It completely automates setting up IIS, FastCGI and the latest version of PHP from the php.net site. To install it, just click this button:
If you don’t have Web PI v2 installed, you will be prompted to install it. Once installed, the tool will launch. You can either navigate to the “Web Platform” tab and select “PHP” under “Framework and Runtimes” customize link, or close your browser, re-open to this blog and click the button again to launch the tool directly into PHP install.
For step-by-step instructions on how to install PHP on IIS6 (Windows 2003) with the new Microsoft FastCGI module, see Configuring FastCGI Extension for IIS 6.0.
For step-by-step instructions on how to install PHP on IIS7 (Windows Vista SP1 and Windows 2008) see, Using FastCGI to Host PHP Applications on IIS 7.0
My original blog post follows below and provides instructions for how to install IIS7 on Vista (RTM) using the ISAPI-based PHP. I strongly recommend you upgrade to Vista SP1, however, and use the Using FastCGI to Host PHP Applications on IIS 7.0 instead.
Here is a step-by-step guide for Vista RTM:
1) Download PHP from http://www.php.net/downloads.php. I get the zip package because I think it is just as easy, and gives me control over setup.
2) Unzip the php...zip file to your drive. I usually unzip it to C:\php
3) Copy the c:\php\php.ini-dist file to c:\windows\php.ini. Tweak it as needed.
4) Install IIS7, making sure you install the ISAPI Extension component (for PHP-ISAPI - which is what I use) or the CGI component (if you prefer CGI) during IIS installation (ISAPI and CGI are *not* installed by default)
5) Open the IIS Manager (C:\windows\system32\inetsrv\inetmgr.exe
6) Click on "Handler Mappings"
(click here for full size image)
7) Click on the "Add Script Map" task on the right (in blue):
(click here for full size image)
8) Fill in the dialog box like this:
9) Pause to enjoy this handy dialog box that I had added late in RC1 just for you, then click "yes"
If you click "Yes" it will automatically register this ISAPI /CGI with the extension restriction list - the feature we added in IIS6 to prevent unauthorized executables from running on the server. This saves time, and considering the fact that you're adding the scriptmap, it's a safe bet you want it to run. :)
10) go to your C:\inetpub\wwwroot directory and create a test.php page. You can use the simple
<?php phpinfo(); ?>
function to test if PHP is working correctly.
Enjoy!
Adddendum: several people have commented below that they are having problems getting PHP sessions to work on IIS7/Vista. Please see this post for more information on the issue.
Another note: PHP users may wish to try out the recently announced FastCGI support from Microsoft for improved reliability and performance. See this post for more information on the announcement, and this post for a demo of the new feature.