Velg Guzzles cURL-handler for en SOCKS-proxy
En handler som bare 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 bevisst velger handleren til en Guzzle-klient, 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 om å slå opp destinasjonsnavnet. Guzzle sender endepunktet videre til libcurl, så libcurl-bygget som er lastet inn, må støtte den protokollen. SOCKS5-proxylisten gir offentlige endepunktkandidater for klientens proxy-URL.
Hvis applikasjonen allerede har en handlerstabel, undersøk den underliggende transporten før du erstatter den og mister middleware. En handler begrenset til PHP HTTP-strømmer kan ikke implementere SOCKS bare fordi klienten får dette valget.
Kontroller prosessen som utfører forespørselen. CLI PHP og PHP-FPM kan laste inn ulike konfigurasjonsfiler og utvidelser; at cURL finnes i den ene, beviser ikke at det er tilgjengelig i den andre.