2012-01-10 3 views
0

PHP 5.2.17에서 IIS 7.5 웹 서버를 PHP 5.3.8로 업그레이드했습니다. \ Program 파일 (x 86) \ PHP의 \ V5.3의 \ PHP를-cgi.exe : - 내부 서버 오류
CPHP 5.3.8 Wordpress CURL 간헐적 인 오류

HTTP 오류 500.0 : 그래서, 내 워드 프레스의 설치가 시작 간헐적으로 생산하는 500 오류를 수행 한 후 - FastCGI 프로세스가 예기치 않게

자세한 오류 정보

모듈 FastCGIModule
0,123 종료알림 ExecuteRequestHandler
처리기 PHP53_via_FastCGI
오류 코드 CURL을 사용하지만, 이러한 오류를 생성하지 않은 둘 0x000000ff

나는 또한이 서버에 드루팔와 젠드 프레임 워크를 실행합니다. 따라서, 나는 그것이 CURL의 Wordpress 구현에 특정적인 것이라고 말하고 싶습니다.

응용 프로그램 이름 오류가있는 : PHP-cgi.exe, 버전 : 5.3.8.0, 타임 스탬프 : 0x4e537f4b
오류있는 모듈 이름을

나는 다음과 같은 오류가 Windows 응용 프로그램 오류 로그에보고 발견 : php_curl.dll 버전 : 5.3.8.0, 타임 스탬프 : 0x4e537f64
예외 코드 :
가 0xc0000005 오류 오프셋 : 0x00036864은
오류있는 프로세스 ID : 0x01cccf17892cff0e,691,363
:가 0x378
오류있는 응용 프로그램 시작 시간210 오류가있는 응용 프로그램 경로 : C : \ Program Files (x86) \ PHP \ v5.3 \ php-cgi.exe
오류가있는 모듈 경로 : C : \ Program Files (x86) \ PHP \ v5.3 \ ext \ php_curl.
보고서 이드 dll을 : ec31f1ab-3b0a-11e1-9d5f-005056b30014이 컬의 새로운 버전 5.3.7에서 소개 한 다음 PHP 버그의 징후가 될 것으로 보인다

+0

답변으로 두 번째 비트를 게시해야합니다. – stealthyninja

+1

스택 오버플로를 처음 사용했기 때문에 7 시간 동안 사용할 수 없었습니다. 지금 해. ;) – Akaoni

답변

1

동일한 문제가 발생합니다. 내 구성은 다음과 같습니다.

윈도우 7
워드 프레스 3.9.1 (터키어)
아파치 2.4.9 86 VC11 (윈도우 라운지 바이너리)
PHP 5.5.14 ts x86 VC11

저는 프록시를 사용하고 있습니다. 게다가, 나의 프록시는 인증을 필요로한다. wp-includes/class-http.php 파일의 요청 방법 중 하나가 문제가 있음을 발견했습니다.

저는 아래의 라인


    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()); 
     } 

    } 

(라인 번호가 1247 인) 라인 아래 치환함으로써 문제를 해결했다.


    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()); 
     } 

    }