Не удалось открыть обязательный HTTP / Request2.php (include_path = '.; C: \ php5 \ pear') - PullRequest
14 голосов
/ 19 декабря 2010

все.У меня проблемы с грушей.Я тестирую на своем локальном хосте (мой путь к локальному хосту e:\www), моя система - windows xp sp3, моя версия php - 5.2.11, путь - C:\Program Files\phpStudy\PHP5, я запускаю go-pear.bat по этому пути и закончил установку Pear, теперь путь груши находится в C:\Program Files\phpStudy\PHP5\PEAR (под папкой содержится .channels, .registry, OS, PEAR, .depdb, .depdblock, .filemap, .lock, go-pear.phar), затем я запускаю C:\Program Files\phpStudy\PHP5\PEAR_ENV.reg и изменяю php.ini,

; Windows: "\path1;\path2"
include_path = ".;C:\Program Files\phpStudy\PHP5\PEAR"

После перезапуска apache я тестирую простой код, который копируется с сайта Pear.

<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2('http://pear.php.net/', HTTP_Request2::METHOD_GET);
try {
    $response = $request->send();
    if (200 == $response->getStatus()) {
        echo $response->getBody();
    } else {
        echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
             $response->getReasonPhrase();
    }
} catch (HTTP_Request2_Exception $e) {
    echo 'Error: ' . $e->getMessage();
}
?> 

, ноон возвращает

Warning: require_once(HTTP/Request2.php) [function.require-once]: failed to open stream: No such file or directory in E:\www\ct\1.php on line 2

Fatal error: require_once() [function.require]: Failed opening required 'HTTP/Request2.php' (include_path='.;C:\php5\pear') in E:\www\ct\1.php on line 2

Что не так?Как решить?Спасибо.

Ответы [ 3 ]

25 голосов
/ 14 февраля 2011

Вам необходимо установить пакет PEAR http_request2.

Вы можете попробовать команду ...

pear install http_request2

как указано cweiske, но может произойти сбой с ошибкой типа ...

Failed to download pear/http_request2 within preferred state 
"stable", latest release is version 0.5.2, stability "alpha", 
use "channel://pear.php.net/http_request2-0.5.2"

Если вы видите эту ошибку, вам нужно будет установить ее с помощью команды ...

pear install "channel://pear.php.net/http_request2-0.5.2"

Это может привести к ошибке зависимости относительно пакета Net_URL2, например ....

Failed to download pear/Net_URL2 within preferred state "stable", latest 
release is version 0.3.1, stability "beta", 
use "channel://pear.php.net/Net_URL2-0.3.1" to install
pear/HTTP_Request2 requires package "pear/Net_URL2" (version >= 0.2.0)

Если вы видите такую ​​ошибку, введите команду ...

pear install "channel://pear.php.net/Net_URL2-0.3.1"

, а затем повторите команду ...

pear install "channel://pear.php.net/http_request2-0.5.2"

и у вас все будет готово. «Состояние» этих пакетов может со временем меняться, поэтому точные версии в приведенных выше командах также, вероятно, изменятся, и в какой-то момент команда pear install http_request2 может начать работать самостоятельно.

Удачи.

2 голосов
/ 03 января 2011

Вам необходимо установить пакет HTTP_Request2 от pear:

pear install http_request2

Тогда это должно сработать.

1 голос
/ 28 сентября 2014

У меня была похожая проблема на centos.Если вышеперечисленные вещи не работают, следуйте этому патчу

http://www.angeloluput.com/php-planet/pear-on-php-5-5-could-not-extract-package-xml

Патч не работал, поэтому я должен вручную применить патч.и это сработало.

...