Я использую последнюю версию жрет.
(from composer.json)
"guzzlehttp/guzzle": "~5"
(from composer.lock)
"name": "guzzlehttp/guzzle",
"version": "5.2.0",
Когда я пытаюсь сделать запрос (GET или POST) с URL-адресом, который содержит номер PORT:
$response = $client->get('http://www.hostdnshere.com:8888', array());
Я получаю следующую ошибку:
string(68) "cURL error 7: Failed to connect to 000.000.000.000: Permission denied"
Когда я делаю то же самое, но опускаю ПОРТ:
$response = $client->get('http://www.hostdnshere.com', array());
Запрос выполняется без проблем. Я искал документацию и гуглил в Интернете, но не могу узнать, как установить порт для хоста, так как он не может быть включен.
Кроме того, я проверил все это, используя cURL на форме сервера, на который отправляются запросы, с портом и без него, работает как прелесть, несмотря ни на что, поэтому я знаю, что это не проблема с сервером, DNS, прокси или PORTS ,
Для всех тех, кто бьет себя головой о стену из-за
"cURL error 7: Failed to connect to 000.000.000.000: Permission denied"
ошибка, все сводится к «SELINUX». Это верно, любая оболочка cURL, написанная на любом языке программирования, может зависеть от того факта, что когда SELINUX установлен на «принудительное применение», возникает проблема с выполнением cURL для URL, на котором есть нестандартный PORT (т.е. my.domain.com:8888).
Рекомендуется только для локальной разработки, если вы хотите использовать нестандартные ПОРТЫ в своих URL-адресах, это установить «SELINUX» на «отключен». Надлежащее решение в производстве будет использовать чистые URL без PORT в них, чтобы оставить «SELINUX» включенным.
Открыто:
nano /etc/selinux/config
Расположить:
SELINUX=enforcing
Изменить:
SELINUX=disabled
Те, кто использует CentOS, скорее всего, столкнутся с этой проблемой, поскольку «SELINUX» по умолчанию настроен на «принуждение».
Других решений пока нет …