TwitterAPIExchange PHP Xampp SSL 认证问题

Posted

技术标签:

【中文标题】TwitterAPIExchange PHP Xampp SSL 认证问题【英文标题】:TwitterAPIExchange PHP Xampp SSL certification issue 【发布时间】: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 【参考方案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,但这个例外肯定没有暗示这一点。 感谢您的回答有助于解决这个问题:)

以上是关于TwitterAPIExchange PHP Xampp SSL 认证问题的主要内容,如果未能解决你的问题,请参考以下文章

php 截取中文字符串 - ord()函数 0xa0...

mysql 跨库事务XA

邮件到达时没有文件 php

PHP获取中英文混合字符串的字数

Repeater用ul li,一行显示多条数据

ADO:防止更新的数据含有单引号而出错