Библиотека PECL OAuth для PHP - работает в браузере, не может скомпилировать вручную - PullRequest
1 голос
/ 21 марта 2012

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

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

Очевидно, я уже отредактировал php.ini, чтобы он содержал следующую информацию (или она не будет работать на веб-странице): расширение = / 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 скобки. Я понятия не имею, почему это работает в браузере. Надеюсь, кто-нибудь может мне помочь.

1 Ответ

1 голос
/ 21 марта 2012

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

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

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

...