Velge Guzzles cURL-handler for en SOCKS-proxy
En handler som kun støtter HTTP-strømmer kan ikke få SOCKS-forhandling fra en proxy-URL; velg en støttende transport i det faktiske PHP-miljøet.
Når du velger handleren til en Guzzle-klient med vilje, kan en cURL-basert stabel bruke SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h ber proxyen løse opp destinasjonsnavnet. Guzzle gir endepunktet videre til libcurl, så libcurl-bygget som er lastet, må støtte den protokollen. SOCKS5-proxylisten tilbyr offentlige endepunktkandidater for klientens proxy-URL.
Hvis applikasjonen allerede eier en handlerstabel, bør du undersøke transporten under den før du bytter den ut og mister middleware. En handler som er begrenset til PHP HTTP-strømmer, kan ikke implementere SOCKS bare fordi klienten mottar dette valget.
Sjekk prosessen som utfører forespørselen. CLI PHP og PHP-FPM kan laste forskjellige konfigurasjonsfiler og utvidelser; at cURL finnes i den ene, beviser ikke at det er tilgjengelig i den andre.