Php Curl Connectin超时
我有WorpAddress插件,它通过curl与我的生产站点进行通信。 以下是curl代码:Php Curl Connectin超时,php,wordpress,curl,Php,Wordpress,Curl,我有WorpAddress插件,它通过curl与我的生产站点进行通信。 以下是curl代码: $vars = json_encoded( array( //some params ); ); $headers = array( 'Accept: application/json', 'Content-Type: application/j
$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存储库中,它放在上,我的插件使用钩子“site\u transient\u update\u plugins”检查可用的更新。这也不再起作用了,他们也不再收到关于更新的消息
所以我猜他们在服务器上更改了导致此问题的某些内容,但我无法找到导致此问题的原因
我也不是100%确定,但连接需要大约300秒才会抛出此错误。300秒是CURLOPT_CONNECTTIMEOUT的默认值
因此,任何可能导致这种行为的建议都会有所帮助 你能检查一下那个网站的防火墙吗。我确信该站点上的防火墙正在阻止到生产服务器IP地址的通信。尝试远程登录您的站点,以确保端口443打开且可访问
telnet mysite.com 443
如果得到响应,则表示防火墙和Apache/web服务器没有问题
这不仅是防火墙的问题,您还应该向web服务器检查443端口是否打开我必须问:您确定与服务器的连接正常吗?例如,您是否尝试远程登录443端口并查看它是否处于活动状态?是的,我100%确定与服务器的连接正常。正如我所说的,它适用于所有其他站点,也适用于我的几个wp站点(在几个不同的服务器上)。只是它停止了这个网站的工作。所以我不知道是什么原因导致了这种情况,php.ini中的一些设置或其他。我正在尝试复制它,但我无法复制。错误消息看起来问题出在连接层,而不是应用层,这就是我问的原因。通常,即使应用程序中出现问题,您也会得到响应。我会检查服务器上的日志,如果你没有发现任何有用的东西,我会做tcpdump检查服务器是否正确接收到数据包。同时检查DNS解析。更好的是,尝试从不工作的机器ping mysite.com。也
wgethttps://mysite.com:8080
(来自不工作的机器)将向您提供详细的错误消息是的,问题出在防火墙上。他们设置了防火墙,将所有流量都传送到我的服务器。现在修好了。谢谢