Välj Guzzles cURL-hanterare för en SOCKS-proxy
En hanterare som bara stöder HTTP-strömmar kan inte få SOCKS-förhandling från en proxy-URL; välj en stödjande transport i den faktiska PHP-miljön.
När du medvetet väljer hanteraren för en Guzzle-klient kan en cURL-baserad stapel använda SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h ber proxyn att slå upp destinationsnamnet. Guzzle skickar vidare slutpunkten till libcurl, så den inlästa libcurl-versionen måste stödja det protokollet. SOCKS5-proxylistan tillhandahåller offentliga slutpunktskandidater för klientens proxy-URL.
Om programmet redan har en hanterarstapel, undersök den underliggande transporten innan du ersätter den och förlorar middleware. En hanterare begränsad till PHP HTTP-strömmar kan inte implementera SOCKS bara för att klienten får det här alternativet.
Kontrollera processen som gör begäran. CLI PHP och PHP-FPM kan läsa in olika konfigurationsfiler och tillägg; att cURL finns i den ena bevisar inte att det är tillgängligt i den andra.