在AWS Elastic Beanstalk中访问被拒绝的php curl

时间:2014-12-06 19:15:53

标签: php curl amazon-web-services elastic-beanstalk

我有一个PHP应用程序,它使用curl访问外部URL并分析页面内容。我的代码在localhost上工作得很好但是当我把它放在服务器上运行时显示错误:

  

拒绝访问

     

您无权访问“http://www.example.com”   服务器。参考#18.aec67bc8.1417892829.438558f

我的代码

$cookie_file = '';
$post_fields = 'id=1';
$agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_USERAGENT,$agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);     
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);    

$output = curl_exec($ch);

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

EC2的IP范围经常被阻止抓取某些网站,包括StackOverflow。

答案 1 :(得分:0)

该代码适合我。您可能需要在AWS实例上打开端口80。您可以通过编辑与Elastic Beanstalk创建的实例关联的安全组来完成此操作。