PEAR/Digg2: проблема с установкой PHP/Linux

У меня есть VPS с оптимизированным для VPS дистрибутивом Debian. Я новичок в использовании VPS и практически не имею опыта работы с Linux.

Небольшая предыстория в помощь: я прошел и установил грушу apt-get, которая прошла нормально. Я попытался установить зависимые службы для API Digg как таковые:

pear install HTTP_Request2 

Это дало ошибку, мне пришлось установить ее с помощью:

pear install HTTP_Request2-alpha

Затем я попытался:

pear install HTTP_OAuth

Это дало ту же ошибку, что и выше, в конце концов я установил ее с помощью:

pear install HTTP_OAuth-alpha

Итак, я успешно установил Digg2 с помощью pear install Services_Digg2.

Ладно, предыстория окончена. Моя проблема в том, что он не инициирует класс, поскольку говорит, что файла нет. PHP так же прост, как это:

require_once 'Services/Digg2.php';
$api = new Services_Digg2;

Я проверил свой путь включения в соответствии с ошибкой в ​​PHP:

Неустранимая ошибка: require_once() [function.require]:
Не удалось открыть требуемый 'Services/Digg2.php' (include_path='/usr/share/php')
в /var/www/redacted1/data/ www/redacted2/index.php в строке 3

Итак, я убедился, что файл находится в Терминале:

http://snapplr.com/tk9r

И я проверил правильность пути включения через PHP_Info():

http://snapplr.com/dwk7 (извините, я могу опубликовать только одну гиперссылку, так как я новичок )

Ошибка остается. Надеюсь, мое длинное вступление не доставит вам хлопот и действительно поможет.

Любые подстрекательства?

Спасибо, Джефф.


person Jeff Andersen    schedule 27.11.2010    source источник


Ответы (1)


Чтобы установить пакет PEAR/PECL, находящийся в состоянии, отличном от «стабильного», необходимо указать полную спецификацию пакета:

pear install Services_Digg2-alpha #alpha state
pecl install ssh2-0.11.2          #beta state

PEAR также заботится о зависимостях (обычно, но я могу подтвердить, что в этом конкретном случае это так). Вам не нужно устанавливать их вручную.

Теперь, когда он у вас установлен, он должен работать так же, как вы:

include_once 'Services/Digg2.php'

Однако меня немного беспокоит, что ваш код показывает include_once, а сообщение об ошибке показывает, что вы используете require_once. Это заставляет меня поверить, что код, который вы разместили, не является фактическим кодом.

person netcoder    schedule 27.11.2010
comment
Извините, да, я перепечатал код в Stack Overflow вместо c&p. Я использую require_once (буду редактировать для потомков). Пробую ваше предложение сейчас - person Jeff Andersen; 27.11.2010
comment
Извините, я неправильно понял, что вы просто привели пример того, как установить пакет вне стабильного состояния? Или я должен был установить ssh2? В последнем случае я попытался is и получил ошибку: snapplr.com/0kxj - person Jeff Andersen; 27.11.2010
comment
@Jeff: да, это было задумано как пример, потому что PEAR и PECL работают именно так. В любом случае, какую версию PHP вы используете? У вас есть расширение Phar? У меня была такая проблема, когда Phar был активирован в 5.2. Это заставит PHP выдать No такой файл или каталог в обычных файловых функциях, даже если файл существует. На это могут повлиять другие вещи: разрешения, open_basedir и другие настройки php.ini. - person netcoder; 27.11.2010