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 internet
o.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-development
或 php.ini-production
。据我了解,这些额外的文件是某种“模板”,可以轻松修改默认的php.ini
文件。你可以在C:\xampp\php\php.ini
找到它(XAMPP默认安装)。
另外,当您运行 Apache 时,请务必重新启动它以确保您对配置文件的更改生效。
如果您有疑问,您可以随时在脚本开头使用ini_set()
在运行时覆盖设置。
【讨论】:
@ashnashamim 更新了答案。 我做了更改,但仍然出现同样的问题 @ashnashamim 你重启了 Apache 吗? (注意:服务,而不是 XAMPP 控制面板本身。) @ashnashamim 我不知道,我不使用 Twitter 的 API,但这个例外肯定没有暗示这一点。 感谢您的回答有助于解决这个问题:)以上是关于TwitterAPIExchange PHP Xampp SSL 认证问题的主要内容,如果未能解决你的问题,请参考以下文章