我有一个PHP脚本,张贴用户的Facebook页面内容。这是通过Facebook应用程序实现的。
当我单击Authorize时,它加载了10秒,不能开机自检,并且显示了一个空白页面,错误如下:
exception Failed to connect to 2a03:2880:f01f:2:face:b00c:0:2: Network is unreachable Fatal error: Call to a member function getLongLivedSession() on a non-object in /var/zpanel/hostdata/zadmin/public_html/mysite/thirdparty/networks/facebook/Facebook.php on line 92
直到一周前,一切都运行得很好,但今天我仍然收到这个错误。此问题的原因是什么?
发布于 2015-04-28 09:05:29
许多服务器都启用了IPv6,但它没有被路由,也不能正常工作。当你试图访问一个支持IPv6的站点时,这就变成了一个主要问题。默认情况下,curl将尝试通过IPv6进行连接,并将超时。通过IPv4,它可以很好地工作,只要你添加以下内容:
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
如果您在使用file_get_contents()
、get_headers()
等时遇到此问题,可以在/etc/sysctl.conf
中添加以下行:
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
或
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
根据您的评论进行更新:
在freebsd 9中禁用ipv6
/etc/rc.conf
ipv6_network_interfaces="none" # Default is auto
ipv6_activate_all_interfaces="NO" # this is the default
ip6addrctl_enable="NO" # New way to disable IPv6 support
ip6addrctl_policy="ipv4_prefer" # Use IPv4 instead of IPv6
ipv6_activate_all_interfaces="NO" # Do not automatically add IPv6 addresses
https://stackoverflow.com/questions/28118047
复制相似问题