【问题标题】:PHP Fatal error: Class 'OAuth'PHP致命错误:类'OAuth'
【发布时间】:2012-01-12 07:27:34
【问题描述】:

我在网站上搜索了几个小时以寻找答案,但没有任何帮助。我已经安装了 PHP/Apache2/PECL/OAuth 并为extension=oauth 编辑了 php.ini。我输入“php example.php”的所有内容都会出现此错误我会设置令牌以及example.php中所需的所有内容

PHP 致命错误:在第 22 行的 /home/twitter/TwitterAutoReply.php 中找不到类“OAuth”

我的 php 文件是 example.php 和 TwitterAutoReply.php

https://raw.github.com/gist/820281/303a61ee9b324070e803e51806552e64fccfdd4c/example.phphttps://gist.github.com/raw/820281/6bf1b6d78dd05daef319ce84a88eedf139a44b5a/TwitterAutoReply.php

【问题讨论】:

  • 从错误来看,您无法运行与编程相关的class OAuth(PHP 文件)而不是 apache 扩展。
  • 令人惊讶的是,它实际上是一个扩展。 php.net/manual/en/class.oauth.php

标签: php twitter oauth pecl


【解决方案1】:

确保实际加载了扩展。要验证它是否存在,只需向 PHP 询问有关 OAuth 扩展的一些信息,如下所示:

php --re oauth

如果这没有显示有关模块的信息,而是给出了错误,您就会知道它没有加载。此外,您可以简单地使用php -m 列出所有已加载的模块。

尝试在您的命令中使用-z oauth 手动加载扩展程序。示例:php -z oauth example.php。如果这样可行,则说明您没有正确编辑 php.ini。

【讨论】:

  • root@q8edit /oauth-1.2.2 # php -z oauth /home/twitter/example.php 加载 oauth 失败:oauth:无法打开共享对象文件:没有这样的文件或目录 PHP 致命错误: 在第 22 行的 /home/twitter/TwitterAutoReply.php 中找不到类“OAuth”
  • 这就是你的答案——它甚至找不到文件。确保将其放在正确的目录中。我的 PHP.ini 必须有 extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ 才能工作 - 该路径是 PECL 在我的案例中放置其内容的位置,但这对你来说可能不同。
  • 如果上面的命令显示 OAuth 已安装但您仍然遇到问题,请确保重新启动 httpd 服务,这就是我的情况。
【解决方案2】:

从错误中,您没有在 php.ini 文件中导入 oauth 包。 对于ubuntu,需要安装oauth:

sudo pecl install oauth

然后在 php.ini 中包含 oauth 包。如果不知道文件在哪里,可以使用:

sudo find / -name "oauth.so"

使用扩展的路径将以下内容添加到您的 php.ini:

extension=/path/to/oauth/package/oauth.so

重启 apache 再试一次。

【讨论】:

    【解决方案3】:

    php --re oauth 命令解决了我的问题。

    php.ini 似乎有一些错误编码。该命令给了我错误,我删除了这些行并重新安装了 oauth,重新启动了 httpd 并成功加载了该扩展。

    【讨论】:

      【解决方案4】:

      我正在开发 oauth 客户端,并且无法更改环境(添加 php-oauth 扩展)。以下解决方案为我解决了:

      1) 安装 Zend OAuth

      composer require zendframework/zendoauth

      2) 在 PHP 代码中使用以下代码:

      $hmac = new \ZendOAuth\Signature\Hmac($consumerSecret, $accessTokenSecret, 'SHA1'); return $hmac->sign($data, $method, $url);

      而不是

      $oauth = new OAuth(... $oauth->generateSignature(...

      【讨论】:

        猜你喜欢
        • 2017-04-27
        • 2012-05-17
        • 2013-03-21
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多