PHP 5.3.8 Wordpress CURL Периодическая ошибка - PullRequest
0 голосов
/ 10 января 2012

Я обновил свой веб-сервер IIS 7.5 до PHP 5.3.8 с PHP 5.2.17. После этого моя установка 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
Идентификатор ошибочного процесса: 0x378
Время запуска приложения с ошибкой: 0x01cccf17892cff0e
Неверный путь к приложению: 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

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Это, кажется, проявление следующей ошибки PHP, представленной в 5.3.7 с новой версией cURL: https://bugs.php.net/bug.php?id=60576

Если вам не нужны новые функции новой версии cURL (например, чтение сертификатов из файла, указанного в php.ini), загрузите соответствующий Zip-файл PHP 5.3.6 из http://windows.php.net/downloads/releases/archives/ и замените ext \ php_curl.dll версией PHP 5.3.6.

Если вам нужны эти функции ... это открытый вопрос.

Надеюсь, это кому-нибудь поможет!

1 голос
/ 15 июля 2014

У меня тоже такая же проблема. Моя конфигурация приведена ниже.

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

    }
...