服务器上的IPv6配置无效,请在服务器上禁用或获取本机IPv6

时间:2013-10-28 22:04:14

标签: php facebook-php-sdk ipv6

我正在尝试使用Php SDK将图像上传到一个组,但它不断返回此错误“服务器上的IPv6配置无效,请在您的服务器上禁用或获取本机IPv6”。

        $access_token = $facebook->getAccessToken();

        $output = "";
        $facebook->setFileUploadSupport(true);
        $group_id = "390114434403182";
        //Upload a photo
        $photo_details = array(
            'message' => 'Screen Shot'
        );
        //Absolute url
        $file='https://aplikoj.com/fbapps/turbopost2/images/ID-10059064.jpg';
        $photo_details['image'] = '@' . realpath($file);
        //Do the upload and get the responses
        $upload_photo = $facebook->api('/'.$group_id.'/photos', 'post', $photo_details);

1 个答案:

答案 0 :(得分:0)

检查the source code,我们发现当curl在尝试与Facebook建立IPv6连接时返回错误Network is unreachable时会发生此错误。

这有两个一般原因:

  1. 您的服务器已配置了全局IPv6地址,但实际上并没有实际的IPv6连接。

    这是最常见的情况,因此错误消息以这种方式写入。正如您所看到的,代码重试连接强制IPv4,因此您应该只在错误日志中看到这一点,但仍然可以从Facebook获得有效的结果。

    这可能是由于服务器上的6to4,Teredo或ISATAP配置不当(所有这些都应该被禁用)或者在IPv6路由不可用时通过错误配置的路由器通告IPv6地址引起的。您应该可以轻松检查服务器的配置,或与管理员联系。

    如果你实际上没有从Facebook获得结果,那么你继续......

  2. 您的传出IPv4连接已损坏或防火墙。

    这通常非常罕见,但如果您在大型企业环境中工作,可能就是这种情况;一些这样的地方喜欢不分青红皂白地阻止Facebook和其他类似的网站。您可能会看到虚假的IPv6错误,并且在通过IPv4重试后仍然会获得FacebookApiException类型CurlException。如果是这种情况,您需要联系网络管理员以删除限制。