У меня есть приложение PHP, которое использует завиток для доступа к внешнему 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);
Есть идеи?
Диапазоны IP-адресов EC2 часто блокируются при сканировании некоторых сайтов, в том числе StackOverflow.
Код работает для меня. Вероятно, вам нужно открыть порт 80 на вашем экземпляре AWS. Вы можете это сделать, отредактировав группу безопасности, связанную с экземпляром, созданным Elastic Beanstalk.