繁体   English   中英

PHP 5.3.8 Wordpress CURL间歇性错误

[英]PHP 5.3.8 Wordpress CURL Intermittent Error

我将IIS 7.5 Web服务器从PHP 5.2.17升级到PHP 5.3.8。 这样做之后,我的Wordpress安装间歇性地开始产生500个错误:

HTTP错误500.0-内部服务器错误
C:\\ Program Files(x86)\\ PHP \\ v5.3 \\ php-cgi.exe-FastCGI进程意外退出

详细错误信息

模块FastCGIModule
通知ExecuteRequestHandler
处理程序PHP53_via_FastCGI
错误代码0x000000ff

我还在此服务器上运行了Drupal和Zend Framework,它们都使用CURL,但是它们没有产生错误。 因此,我想说这是特定于CURL的Wordpress实现的。

我查看了Windows应用程序错误日志,发现以下错误:

错误的应用程序名称:php-cgi.exe,版本:5.3.8.0,时间戳:0x4e537f4b
故障模块名称:php_curl.dll,版本:5.3.8.0,时间戳:0x4e537f64
异常代码:0xc0000005
故障偏移量:0x00036864
故障进程ID:0x378
错误的应用程序开始时间:0x01cccf17892cff0e
错误的应用程序路径:C:\\ Program Files(x86)\\ PHP \\ v5.3 \\ php-cgi.exe
错误的模块路径:C:\\ Program Files(x86)\\ PHP \\ v5.3 \\ ext \\ php_curl.dll
报告ID:ec31f1ab-3b0a-11e1-9d5f-005056b30014

这似乎是以下PHP错误的体现,在5.3.7中引入了新版本的cURL: https ://bugs.php.net/bug.php ? id = 60576

如果您不需要新的cURL版本的新功能(例如从php.ini中指定的文件中读取证书),请从http://windows.php.net/下载相关的PHP 5.3.6 Zip文件。 downloads / releases / archives /并将ext \\ php_curl.dll替换为PHP 5.3.6版本。

如果您确实需要这些功能,这是一个悬而未决的问题。

希望这对某人有帮助!

我也遇到同样的问题。 我的配置如下。

Windows 7的
Wordpress 3.9.1(土耳其语)
Apache 2.4.9 x86 VC11(Windows Lounge二进制文件)
PHP 5.5.14 ts x86 VC11

我正在使用代理。 此外,我的代理服务器需要身份验证。 我发现文件wp-includes/class-http.php中的请求方法之一是有问题的。

我通过替换下面的行(行号为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() );
        }

    }

与下面给出的行。


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

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM