我一直得到同样的错误。我刚刚安装了SSL,没有运气。我已经检查了所有其他帖子,但没有一个解决方案似乎适合我。
有谁知道我该怎么做?
致命错误:未捕获的CurlException:77:错误设置证书 验证位置:CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath: 没有人投入 /home/acmesoft/public_html/Oddsmaker/php_sdk/base_facebook.php上线 977
if ($result === false) {
$e = new FacebookApiException(array(
'error_code' => curl_errno($ch),
'error' => array(
'message' => curl_error($ch),
'type' => 'CurlException',
),
));
curl_close($ch);
throw $e;
}
curl_close($ch);
return $result;
答案 0 :(得分:13)
我和你有同样的错误,这个问题解决了,我只是把这2行
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
在你的facebook应用程序定义之后
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'xxx',
'cookie' => true,
'perms' => 'publish_stream,read_stream,email',
'domain' => 'example.com'
))
答案 1 :(得分:9)
Riyanto Wibowo的回应很危险,因为你实际上是在关闭SSL。警惕走这条路。来自comment on the php manual:
请大家,停止将CURLOPT_SSL_VERIFYPEER设置为false或0.如果您的PHP安装没有最新的CA根证书包,请在curl网站下载并将其保存在您的服务器上:
http://curl.haxx.se/docs/caextract.html
然后在php.ini文件中设置一个路径,例如在Windows上:
curl.cainfo = C:\ PHP中\ cacert.pem
关闭CURLOPT_SSL_VERIFYPEER允许中间人(MITM)攻击,你不需要!
我会将此作为评论发布,但我没有足够的声誉。
答案 2 :(得分:0)
您只需要将fb_ca_chain_bundle.crt放在与base_facebook.php相同的文件夹中。你可以在这里得到它:https://github.com/facebook/facebook-php-sdk/blob/master/src/fb_ca_chain_bundle.crt