2012-03-21 1 views
1

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

Когда я пытаюсь скомпилировать код из командной строки компилятор говорит: PHP Фатальная ошибка: Class «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 скобки. Я не знаю, почему он работает в браузере. Надеюсь, кто-то может мне помочь.

ответ

1

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

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

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

+0

Ini был расположен по адресу /etc/php5/cli/php.ini, но, действительно, это и помогло. Я даже помню, как выгляжу в этой папке. Если бы у меня был gopled php5 cli, первый хит «PHP: использование командной строки» заставил бы меня задуматься ... В любом случае, спасибо! – MarkM