In order to choose the right PHP runtime binaries you have to answer yourself the following questions:
What version of PHP do I need?
Is it 5.2, 5.3 or 6.0? It depends several things, like what version does your hosting provider support or does an extension that you need exist for the particular PHP version. In my case my hosting provider supports PHP version 5.2 and the Web Platform Installer also installs PHP 5.2 on my local development machine.
What Operating System is PHP running on?
It’s Windows.
What CPU architecture is my computer running?
x86 (32-bit), x64 (64-bit) or IA64)? Web Platform Installer installs the x86 PHP binaries, which run on 32-bit and 64-bit Windows.
What http web server is PHP running under?
If you run on IIS you need the Non-Thread-Safe binaries. (nts).
If you run on Apache you need the Thread-Safe binaries (ts).
I am running on IIS, which means I need the Non-Thread-Safe binaries.
Note: Some extensions (DLLs) like for example the XDebug.dll come in a XDebug_TS.dll flavor and in a XDebug.dll incarnation. The binary without the “_TS” suffix is the Non-Thread-Safe version. The DLL that ends with “_TS” is the Thread-Safe library.
And at last but not least:
What Visual C/C++ Runtime Libraries are the PHP binaries linked against?
At this point, I see you shaking your head, but it is true, PHP also distinguishes the PHP runtime files based on which version of the C-Runtime is being used for linking. The options are VC6 or VC9.
The Web Platform Installer uses the VC6 version because it uses PHP 5.2 and PHP 5.2 only comes in the VC6 flavor. PHP 5.3 has a VC6 edition that is used for Apache and a VC9 compilation that you should use for IIS to gain some performance and stability improvements.
You can find some additional information here:
http://www.php.net/manual/en/install.windows.iis7.php
and here:
http://blogs.msdn.com/brian_swan/archive/2010/02/02/getting-started-with-php-on-windows.aspx
This all boils down to…
… the following situation: For downloading PHP 5.2 on IIS (Windows) you are left with two options:
http://us2.php.net/get/php-5.2.12-nts-Win32.zip/from/a/ (VC6, notice the nts in the name.)
http://windows.php.net/download/#php-5.2-nts-VC6-x86 (VC6, notice the nts in the name – Gets installed by Web Platform Installer)
Ausblick
For more details follow the WIMPinator Chronicles blog post series.