我有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的默认值。
因此,任何可能导致此行为的建议都会有所帮助。
答案 0 :(得分:1)
您可以检查该网站上的防火墙吗?我确信该站点上的防火墙阻止了生产服务器的IP地址流量。
答案 1 :(得分:0)
尝试telnet您的网站以确保端口443打开并可访问
telnet mysite.com 443
如果您收到回复,则表示您的防火墙和Apache / Web服务器没有问题。
这不仅是防火墙问题,您还应该检查您的网络服务器是否有443端口打开。