Php Curl Connection超时

时间:2014-12-25 19:41:47

标签: php wordpress curl

我有worpdress插件,通过curl与我的生产网站https://mysite.com进行通信。 这是卷曲代码:

   $vars = json_encoded(
                array(
                   //some params
                  );
   );

    $headers = array(
        'Accept: application/json',
        'Content-Type: application/json',
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://mysite.com/myapi");
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    $result = curl_exec($ch);

    var_dump(curl_error($ch);

它适用于所有使用我的插件的wp网站,但突然间它只停留在一个网站上工作: 和curl_error()返回:

Failed to connect to mysite.com port 443: Connection timed out

此外,我的插件不在wordpress存储库中,它放在https://mysite.com/plugin上,我的插件使用hook" site_transient_update_plugins"检查可用的更新。这也不再适用,他们不再收到有关更新的消息。

所以我猜他们在他们的服务器上改变了导致这个问题的东西,而我却找不到导致这个问题的原因。

此外,我不是100%确定,但连接需要大约300秒才能抛出此错误。并且300 s是CURLOPT_CONNECTTIMEOUT的默认值。

因此,任何可能导致此行为的建议都会有所帮助。

2 个答案:

答案 0 :(得分:1)

您可以检查该网站上的防火墙吗?我确信该站点上的防火墙阻止了生产服务器的IP地址流量。

答案 1 :(得分:0)

尝试telnet您的网站以确保端口443打开并可访问

telnet mysite.com 443

如果您收到回复,则表示您的防火墙和Apache / Web服务器没有问题。

这不仅是防火墙问题,您还应该检查您的网络服务器是否有443端口打开