Error When Installing PHP5 on IIS6

Solution 1:

That's a pretty out of date blog entry and life has moved on substantially since then. So forget everything you read on that page :)

1. Download PHP:

Download the latest stable version of PHP for windows. In this case download the PHP 5.3.6 x86 Non Thread Safe zip file (note: the version number may change as the PHP team release new stable binaries):

http://windows.php.net/download/
http://windows.php.net/downloads/releases/php-5.3.6-nts-Win32-VC9-x86.zip

Extract the contents of the zip file to a folder called C:\PHP so that in this folder you have the following subfolder structure:

C:\PHP\dev , C:\PHP\ext , C:\PHP\extras, etc

Rename one of the php-*.ini files to php.ini and edit according to any requirements you may have.

2. Install/Configure Microsoft's FastCGI Extension for IIS5.1/6.0:

Install Microsoft's IIS6 FastCGI extension which can be downloaded from here:

http://www.iis.net/download/fastcgi

Once installed, edit C:\Windows\System32\InetSrv\fcgiext.ini so that it contains only the following:

[Types]
php=PHP

[PHP]
ExePath=C:\PHP\php-cgi.exe

3. Configure IIS PHP Scriptmap:

Edit or add the .php scriptmap to your chosen website (or you can add globally) by right clicking on the site and choosing properties:

enter image description here

Choose the Home Directory tab and click Configuration:

enter image description here

Click Add (or if you still have the .php scriptmap listed, then remove it and re-add).

You need to populate the Executable and Extension fields with these values:

Executable: C:\WINDOWS\system32\inetsrv\fcgiext.dll
Extension: .php

Click OK and save these changes.

4. Configure PHP FastCGI Settings in PHP.INI:

Open C:\PHP\php.ini in an editor and locate and configure these settings:

fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
date.timezone = Europe/London  ; (http://uk3.php.net/manual/en/timezones.php)

It seems you need to set the timezone now for the phpinfo(); page to render properly, but it's a good idea to set this anyway.

5. Test PHP:

Create a file called test.php with the following:

<?php
    phpinfo();
?>

Browse to this page and if all is good you should see:

enter image description here

After that it's all up to you to fine tune your configuration such as deciding which extensions to use and so on.

After Thoughts:

Depending on how your system is set up you may need to adjust the permissions on the C:\PHP folder. If it's a pretty stock installation and your sites are running in application pools using the Network Service account and you're using the generated IUSR_<MACHINE_NAME> anonymous account then you shouldn't need to change anything.