Библиотека PECL OAuth для PHP — работает в браузере, не может компилироваться вручную

Я использую библиотеку PECL OAuth для PHP, которую я установил правильно (ну, сейчас я в этом сомневаюсь). Я использую его для аутентификации перед запросом LinkedIn API. В моем коде я создаю объект OAuth, как в примере здесь, см. внизу. Он получает токены, авторизует пользователя после входа в систему и успешно извлекает данные. Но самое смешное, что это работает только тогда, когда я запускаю файл .php через свой браузер (размещенный в apache).

Когда я пытаюсь скомпилировать код из командной строки, компилятор говорит: Неустранимая ошибка PHP: класс «OAuth» не найден в xxx.php в строке 15.

Очевидно, я уже отредактировал php.ini, чтобы он содержал следующее (иначе он не будет работать на веб-странице): extension=/usr/lib/php5/20090626/oauth.so

Но когда я набираю «php -m» в командной строке, я не вижу модуль oauth в списке. Я попытался получить имя/местоположение файла, вставив эти строки после создания экземпляра объекта OAuth.

$oauthc = new OAuth($oauth['linkedin']['consumerkey'], $oauth['linkedin']['consumersecret'],OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
$reflector = new ReflectionClass("OAuth");
$fn = $reflector->getFileName();
echo "[".dirname($fn)."]";

Но это только вернуло 2 скобки. Я понятия не имею, почему это, по-видимому, работает в браузере. Надеюсь, кто-нибудь может мне помочь.


person MarkM    schedule 21.03.2012    source источник


Ответы (1)


PHP может использовать разные файлы конфигурации php.ini в зависимости от того, какой SAPI используется в данный момент. Например, могут быть файлы (зависит от дистрибутива linux):

  • /etc/php5/cli/conf.d/*.ini -> загружается при запуске в режиме CLI
  • /etc/php5/apache2/conf.d/*.ini -> загружается при запуске в качестве модуля Apache

Итак, вероятно, ваш модуль загружается, когда PHP работает как модуль Apache, а не загружается для CLI.

person galymzhan    schedule 21.03.2012
comment
Файл ini находился в /etc/php5/cli/php.ini, но это действительно помогло. Я даже помню, как заглядывал в эту папку... Если бы я погуглил "php5 cli", первое попадание в PHP: использование командной строки заставило бы меня задуматься... В любом случае, спасибо! - person MarkM; 21.03.2012