Неверное открытие требует "HTTP/Request2.php" (include_path = '; C:\php5\pear')
все. У меня проблемы с грушей.
Я тестирую свой локальный хост (мой путь к localhost - e:\www
), моя система - это windows xp sp3, моя версия php - 5.2.11, путь - C:\Program Files\phpStudy\PHP5
, я запускаю go-pear.bat
в этом пути и завершаю установку груши, теперь путь груши находится в 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 я тестирую простой код, который копируется с сайта груши.
<?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
Что не так? Как решить? Спасибо.
Ответы
Ответ 1
Вам нужно установить пакет 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
Вам нужно установить пакет HTTP_Request2 из груши:
pear install http_request2
Тогда он должен работать.
Ответ 3
У меня была аналогичная проблема на centos. Если выше ничего не работает, следуйте этому патчу
http://www.angeloluput.com/php-planet/pear-on-php-5-5-could-not-extract-package-xml
Патч не работал, поэтому я должен вручную применить патч. и это сработало.