【问题标题】:PHP curl call not working when the caller script is called from outside the LAN当从 LAN 外部调用调用者脚本时,PHP curl 调用不起作用
【发布时间】:2014-10-23 13:16:52
【问题描述】:

所以我遇到了一个 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 中可见。

【问题讨论】:

  • 尝试开启错误报告并使用 E_ALL。
  • 您可以跟踪 CURL 请求 - stackoverflow.com/questions/3252851/…
  • 我正在使用带有 Xampp 的 Windows,我尝试使用 php 中的 curl_error 函数从 curl 中获取错误,但没有返回错误。但是应该调用的php脚本仍然没有运行。

标签: php curl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-07-08
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多