I upgraded my IIS 7.5 web server to PHP 5.3.8 from PHP 5.2.17. After doing so, my Wordpress install started intermittently producing 500 errors:
HTTP Error 500.0 - Internal Server Error
C:\Program Files (x86)\PHP\v5.3\php-cgi.exe - The FastCGI process exited unexpectedlyDetailed Error Information
Module FastCGIModule
Notification ExecuteRequestHandler
Handler PHP53_via_FastCGI
Error Code 0x000000ff
I also run Drupal and the Zend Framework on this server, both of which use CURL, but these did not produce the error. As such, I'd say it's something specific to the Wordpress implementation of CURL.
I looked in the Windows application error log and found the following errors:
Faulting application name: php-cgi.exe, version: 5.3.8.0, time stamp: 0x4e537f4b
Faulting module name: php_curl.dll, version: 5.3.8.0, time stamp: 0x4e537f64
Exception code: 0xc0000005
Fault offset: 0x00036864
Faulting process id: 0x378
Faulting application start time: 0x01cccf17892cff0e
Faulting application path: C:\Program Files (x86)\PHP\v5.3\php-cgi.exe
Faulting module path: C:\Program Files (x86)\PHP\v5.3\ext\php_curl.dll
Report Id: ec31f1ab-3b0a-11e1-9d5f-005056b30014
This appears to be a manifestation of the following PHP bug, introduced in 5.3.7 with a new version of cURL: https://bugs.php.net/bug.php?id=60576
If you don't need the new features from the the new cURL version (such as reading certificates from a file specified in php.ini), download the relevant PHP 5.3.6 Zip file from http://windows.php.net/downloads/releases/archives/ and replace ext\php_curl.dll with the PHP 5.3.6 version.
If you do need these features... that's an open question.
Hope this helps someone!
I am also experiencing the same problem. My configuration is given below.
Windows 7
Wordpress 3.9.1 (Turkish)
Apache 2.4.9 x86 VC11 (Windows Lounge binaries)
PHP 5.5.14 ts x86 VC11
I am using proxy. Moreover, my proxy requires authentication. I found that one of the request methods in the file wp-includes/class-http.php
is problematic.
I solved the issue by replacing below lines (line number is 1247)
if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) {
curl_setopt( $handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );
curl_setopt( $handle, CURLOPT_PROXY, $proxy->host() );
curl_setopt( $handle, CURLOPT_PROXYPORT, $proxy->port() );
if ( $proxy->use_authentication() ) {
curl_setopt( $handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY );
curl_setopt( $handle, CURLOPT_PROXYUSERPWD, $proxy->authentication() );
}
}
with the lines given below.
if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) {
$isPHP5 = version_compare(PHP_VERSION, '5.0.0', '>=');
if ($isPHP5) {
curl_setopt($handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($handle, CURLOPT_PROXY, $proxy->host());
curl_setopt($handle, CURLOPT_PROXYPORT, $proxy->port());
} else {
curl_setopt($handle, CURLOPT_PROXY, $proxy->host() . ':' . $proxy->port());
}
if ($proxy->use_authentication()) {
if ($isPHP5)
curl_setopt($handle, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($handle, CURLOPT_PROXYUSERPWD, $proxy->authentication());
}
}