PHP Guzzle 5: Невозможно обработать URL с номером PORT в нем

Я использую последнюю версию жрет.

(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 ,

2

Решение

Для всех тех, кто бьет себя головой о стену из-за

"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» по умолчанию настроен на «принуждение».

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]