所以我遇到了一个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将调用重定向到其默认页面,并且由于我没有使用输出,我没有注意到这一点。