fsockopen:操作超时

时间:2017-01-25 14:44:28

标签: php websocket freebsd php-7

当我尝试使用fsockopen时,我收到operation timed out错误代码60错误。

这在recaptcha类中失败,但是对于以下片段也是如此:

<?php
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

在我将环境切换为使用PHP 7.0后,此错误已经开始。

当我将网址切换为... www.stackoverflow.com获取HTTP/1.1 200 OK标题时,最有趣和最有趣的是它的工作

以下网站出现超时:google.comyahoo.comfacebook.com

安装了基本扩展程序,包括:

  • OpenSSL的,
  • 插座,
  • 会话

精确的PHP版本:

# php -v
PHP 7.0.15 (cli) (built: Jan 24 2017 01:17:16) ( NTS 

你们中间有没有人有类似的问题,可以指出我正确的方向?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

这是由防火墙配置(使用IPFW)脚本引起的,由于某种原因它拒绝了IPv6连接,这在以前没有发生过。

允许ip6状态连接后,问题就消失了。