0

我正在尝试将 cURL 与 PHP 一起使用,它给了我这个错误:

“无法连接到 208.77.188.166:不允许操作”

我很确定这是服务器问题 - 但以防万一,这是我的代码:

<?php

$ch = curl_init();
$url  ="http://www.example.com";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec($ch) or die(curl_error($ch));
echo $output;

?>

在 Apache 上启用了 cURL,我尝试将文件的权限更改为 777。

有任何想法吗?

4

6 回答 6

1

许多共享主机提供商禁止出站连接。 例如,Bluehost 要求您在允许出站连接之前购买静态 IP。然后您需要确保 CURL 知道要使用的出站接口。

于 2009-03-05T03:42:55.793 回答
1

确保设置了所有必需的 CURL 选项:

  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HEADER         => false,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_ENCODING       => "",
  CURLOPT_USERAGENT      => "spider",
  CURLOPT_AUTOREFERER    => true, 
  CURLOPT_CONNECTTIMEOUT => 120,
  CURLOPT_TIMEOUT        => 120,
  CURLOPT_MAXREDIRS      => 10,

我还建议您也使用类似这样的方法来回显错误:

$hostconnect = curl_init($url);
$errmsgcurl  = curl_error($hostconnect);
echo $errmsgcurl;

以上代码未经测试,仅作为示例。

还建议您在本地 apache 服务器上试用您的代码,这样您就可以轻松判断问题出在哪里。

于 2009-03-04T16:39:51.130 回答
1

您可能需要启用allow_url_fopen参考)——如果它在 apache 上,您可以在 .htaccess 文件中执行此操作。

您可以通过将其放入 .htaccess 文件中来启用此功能:

php allow_url_fopen on
于 2009-02-18T06:11:16.963 回答
1

您收到的错误很可能与阻止所有出站连接的防火墙有关。许多共享主机提供商正在阻止传出端口 80 连接,以试图阻止 PHP 脚本中猖獗的错误,这些错误允许远程包含然后被用作针对服务器的攻击媒介。

请联系您的主机,如果是这种情况,您将需要找到连接到远程主机的替代方式,或移动托管公司。

于 2009-03-05T03:55:49.397 回答
0

您应该尝试使用安装在服务器或工作站上的 curl 版本(命令行版本)并尝试复制错误,您可能需要在 curl 请求中设置引用标头,但这一切都取决于您所在的服务器试图联系。

于 2009-02-17T23:01:55.763 回答
0

可能是代理问题或服务器上的某种身份验证问题 - 您可以使用常规 Web 浏览器访问此 URL 吗?

于 2009-02-17T23:40:34.937 回答