【问题标题】:TwitterAPIExchange PHP Xampp SSL certification issueTwitterAPIExchange PHP Xampp SSL 认证问题
【发布时间】:2016-12-30 13:42:45
【问题描述】:

当我编写以下代码时,我正在 Xamp 上运行我的 PHP 应用程序:

echo $twitter->setGetfield($getfield)
         ->buildOauth($url, $requestMethod)
         ->performRequest();

它开始给出以下异常

致命错误:未捕获的异常“异常”和消息“SSL” 证书问题:无法获取本地颁发者证书 C:\xampp\htdocs\twitter\TwitterAPIExchange.php:315 堆栈跟踪:#0 C:\xampp\htdocs\twitter\twitterapp.php(23): TwitterAPIExchange->performRequest() #1 {main} 抛出 C:\xampp\htdocs\twitter\TwitterAPIExchange.php 在第 315 行

我已经尝试了堆栈溢出和互联网上存在的所有解决方案,但没有帮助解决我的问题

我也添加了这些行

curl.cainfo=”C:\xampp\php\cacert.pem”
openssl.cafile=”C:\xampp\php\cacert.pem”

在这些文件末尾的 php.ini 文件(开发和生产)中

我还从 php.ini 文件中的 [extension=php_curl.dll] 中删除了 ;(开发和生产)

我应该做些什么来解决这个问题

【问题讨论】:

  • all the solutions present [...] on the interneto.o
  • 相关:有三个 PHP 配置文件。你想要的那个叫php.ini。你可以在这里找到它:C:\xampp\php\php.ini
  • 另外,由于 PHP 在 Apache 中作为模块加载,您需要在 XAMPP 控制面板中重新启动 Apache 才能使更改生效。
  • 如果 PHP/cURL 真的在使用指定的 CA 文件,那么这个文件可能已经过时并且缺少 Twitter 正在使用的 CA 证书。也许试试这个:github.com/abraham/twitteroauth/blob/master/src/cacert.pem

标签: php ssl curl xampp


【解决方案1】:

确保您正在编辑 php.ini,而不是 php.ini-developmentphp.ini-production。据我了解,这些额外的文件是某种“模板”,可以轻松修改默认的php.ini 文件。你可以在C:\xampp\php\php.ini找到它(XAMPP默认安装)。

另外,当您运行 Apache 时,请务必重新启动它以确保您对配置文件的更改生效。

如果您有疑问,您可以随时在脚本开头使用ini_set() 在运行时覆盖设置。

【讨论】:

  • @ashnashamim 更新了答案。
  • 我做了更改,但仍然出现同样的问题
  • @ashnashamim 你重启了 Apache 吗? (注意:服务,而不是 XAMPP 控制面板本身。)
  • @ashnashamim 我不知道,我不使用 Twitter 的 API,但这个例外肯定没有暗示这一点。
  • 感谢您的回答有助于解决这个问题:)
猜你喜欢
  • 1970-01-01
  • 2021-02-14
  • 2019-11-06
  • 1970-01-01
  • 2012-07-28
  • 2014-04-23
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多