cURL + proxy noob здесь, имея трудное время. У меня возникли проблемы с попыткой получить веб-страницу с удаленного защищенного сервера через прокси. Все, по-видимому, правильно настроено удаленным разработчиком, так что следующая инструкция командной строки работает и возвращает то, что мы ищем:
curl -k --socks5-hostname localhost:xxxx https://hostname/
Однако следующий PHP не повторяет запрошенную веб-страницу. Вместо этого он повторяет ошибку "Не удалось разрешить имя узла":
$proxy = 'localhost:xxxx';
$url = 'https://hostname/';
//$proxyauth = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
$curl_scraped_page = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error)
echo $error;
elseif ($curl_scraped_page)
echo $curl_scraped_page;
Если $url изменен на общедоступную страницу, например Google, запрос будет успешным, и все будут счастливы.
Для подключения требуется SSH-туннель, если это вообще что-то изменит. Туннель открыт и функционирует, что подтверждается запросом командной строки.
Есть ли что-то очевидное, что здесь пропущено?