Php 例外情况:6:canned';t解析主机';graph.facebook.com';

Php 例外情况:6:canned';t解析主机';graph.facebook.com';,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,当您尝试获取“$facebook->getUser()”或$facebook->api('/me')时,任何人都知道此消息(“CurlException:6:无法解析主机'graph.facebook.com'”);非常感谢您的帮助您的服务器一定无法解析graph.facebook.com-您的生产环境是在防火墙后面还是DNS配置错误?您的主机很可能正在阻止传出连接。如果您可以通过ssh连接到服务器,请尝试ping graph.facebook.com,看看是否可以从服务器访问该服务器。如果您没

当您尝试获取“$facebook->getUser()”或$facebook->api('/me')时,任何人都知道此消息(“CurlException:6:无法解析主机'graph.facebook.com'”);非常感谢您的帮助

您的服务器一定无法解析graph.facebook.com-您的生产环境是在防火墙后面还是DNS配置错误?

您的主机很可能正在阻止传出连接。如果您可以通过ssh连接到服务器,请尝试ping graph.facebook.com,看看是否可以从服务器访问该服务器。如果您没有对服务器的ssh访问权,可以尝试使用phpexec或system来运行ping命令

这也可能是由于您的主机不允许在php中打开URL或不允许SSL


查看此搜索以从facebook开发论坛获得更多想法:

我在本地开发服务器上收到此错误,结果发现我需要重新启动操作系统


在我的例子中,我使用的是桥接网络连接。如果在使用dev服务器时主机操作系统上的internet连接被更改或禁用,则DNS会发生更改。

在我的环境中也有相同的情况-重新启动虚拟服务器/ntpd服务并不能解决此问题


只有当我重新启动主机时,这个错误才消失了

我通过设置FacebookCurlHttpClient.php第104行修复了这个问题:

CURLOPT\u IPRESOLVE=>CURL\u IPRESOLVE\u V6

您不必编辑PHP-SDK代码,只需在代码中执行以下操作:

$fb = new Facebook\Facebook([...]);
$fb->getClient()->getHttpClientHandler()->facebookCurl->setopt(CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);

但是
FacebookHttpClientInterface
只公开了
send
方法(并且
facebookCurl
成员变量受保护),所以这是不可能的。

@lgy有一个dns(opendns),但我不知道这是否有问题。我有一个本地服务器,但这是第一次发生这种情况。我不知道怎么解决,我也这么做了。重新启动服务器,解决了问题。我也尝试了这个,它暂时起作用,然后再次发生。