【发布时间】:2011-08-22 09:18:56
【问题描述】:
我有一个 PHP 脚本,它使用 cURL 来访问也位于我的服务器上的文件(安装的电子邮件营销程序)。我写了一个快速脚本来测试我的 cURL 安装,当指向我自己服务器上的文件时它失败了。脚本是:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.mysite.com/test.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
if($contents) {
echo $contents;
} else {
$err = curl_error($ch);
echo $err;
}
curl_close($ch);
当我运行这段代码时,它返回一个错误:无法连接到主机
如果我将 URL 更改为 http://www.google.com 或任何其他网站,它就可以正常工作。此外,当我尝试在另一台服务器上通过 cURL 打开特定页面时,它的工作方式应该如此。我从这些测试中做出的假设是 PHP cURL 已安装并且(有点)工作,并且问题不在试图打开的页面中。
我认为这可能是端口问题,所以我尝试指定具有相同结果的端口(未连接到主机)。我尝试了curl_setopt 和http://www.mysite.com:80/ 来指定我知道要打开的端口。
这让我相信问题出在我的 apache 安装中,但我不是 apache 专家,而且我整天都在与 Google 争吵,但无济于事。有什么想法会导致这种特定的 cURL 失败吗?
【问题讨论】:
-
你解决过这个问题吗?我有完全相同的问题,当我通过浏览器访问时,我自己服务器上的脚本工作正常,但是当我运行 cURL 从子域访问它时,它失败并出现错误 7。