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


PECL OAuth library for PHP - Works in browser, cant compile manually

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

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

显然,我已经编辑了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个括号。我不知道为什么它能在浏览器中正常工作。希望有人能帮我。

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

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

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