Php-cgi.exe application error on IIS with FastCGI

I recently installed PHP 5.2.14 on a Windows 2003 machine running IIS 6 with FastCGI to do some PHP testing at home. I chose the fast CGI install and added several extensions during the install including Curl and Oracle. When I attempted pull a test page after the install completed, I saw the following php-cgi.exe application error on the Windows server’s desktop:

The instruction at “0x100f36ec” referenced memory at “0x000c0194″. The memory could not be “read”.

IIS sent the following error message back to the requesting browser after a couple minutes:

FastCGI Error
The FastCGI Handler was unable to process the request.

Error Details:

* The FastCGI process exited unexpectedly
* Error Number: -1073741819 (0xc0000005).
* Error Description: Unknown Error

HTTP Error 500 – Server Error.
Internet Information Services (IIS)

After some trial and error I was able to get my test page to display if I commented the “extension=php_curl.dll” and “extension=php_oci8.dll” lines in my php.ini file:

; Local Variables:
; tab-width: 4
; End:

After some more trial error I was unable to get PHP to work without leaving the two lines commented. I tried both the VC6 thread and VC6 non thread safe versions and both exhibited the same behavior. On the PHP download page there is a “Which version do I choose?” section that basically explains that I should be using the VC9 version for IIS. Unfortunately I only saw the PHP 5.3.3 VC9 download and I wanted to test with PHP 5.2.14.

I downloaded PHP 5.3.3 anyway and it worked. I guess I will be testing with PHP 5.3.3.

On a somewhat related note, if you are using FastCGI with IIS, you will probably want the VC9 PHP 3.3.3 non thread safe version. This article explains why.