用于PHP的PECL OAuth库 - 在浏览器中工作,无法手动编译

时间:2012-03-21 17:33:36

标签: php oauth pecl

我正在使用正确安装的PHP的PECL OAuth库(好吧,我现在怀疑它)。我在查询LinkedIn API之前使用它进行身份验证。 在我的代码中,我创建了一个OAuth对象,如示例here中所示,请参阅底部。它获取令牌,在用户登录后授权用户,并成功获取数据。但有趣的是,它只有在我通过浏览器运行.php文件(托管在apache中)时才有效。

当我尝试从命令行编译代码时,编译器说: PHP致命错误:第15行的xxx.php中找不到“OAuth”类

显然我已经编辑了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 个答案:

答案 0 :(得分:1)

PHP可以使用不同的php.ini配置文件,具体取决于当前使用的SAPI。例如,可以有文件(取决于Linux发行版):

  • /etc/php5/cli/conf.d/*.ini - >在CLI模式下运行时加载
  • /etc/php5/apache2/conf.d/*.ini - >在作为Apache模块运行时加载

因此,当PHP作为Apache模块运行时,可能会加载您的模块,而不是为CLI加载