当从LAN外部调用调用方脚本时,PHP curl调用不起作用


PHP curl call not working when the caller script is called from outside the LAN

所以我遇到了一个php curl请求的奇怪情况。当脚本从与运行它的服务器相同的本地网络调用时,它可以完美地工作,但当有人从外部调用它时,它不再工作。这是我的代码:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, ROOT_DIR."directory/someScript.php");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    $output = curl_exec($ch);
    curl_close($ch);

当我手动运行someScript.php时,即使是在局域网外,它也能正常工作。只有当我试图通过另一个php脚本用curl调用它来运行它时,才会出现这个问题。有人知道吗?curl库已启用。两个脚本都在同一台服务器上。我使用端口80上的端口转发使服务器在Internet上可见。

我决定发布解决方案,以防其他人遇到同样的问题。最后我找到了原因。问题是我使用外部IP而不是内部IP调用脚本。此外,由于这个XAMPP将调用重定向到其默认页面,并且由于我没有使用输出,我没有注意到这一点。