Vælg Guzzles cURL-handler til en SOCKS-proxy
En handler, der kun understøtter HTTP-streams, kan ikke få SOCKS-forhandling fra en proxy-URL; vælg en understøttende transport i det faktiske PHP-miljø.
Når du bevidst vælger en Guzzle-klients handler, kan en cURL-baseret stak bruge SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h beder proxien om at slå destinationsnavnet op. Guzzle sender endepunktet videre til libcurl, så den indlæste libcurl-build skal understøtte den protokol. SOCKS5-proxylisten leverer offentlige endepunktkandidater til klientens proxy-URL.
Hvis applikationen allerede har en handlerstak, skal du undersøge dens underliggende transport, før du erstatter den og mister middleware. En handler begrænset til PHP HTTP-streams kan ikke implementere SOCKS, blot fordi klienten får denne indstilling.
Kontroller den proces, der udfører anmodningen. CLI PHP og PHP-FPM kan indlæse forskellige konfigurationsfiler og udvidelser; at cURL findes i den ene, beviser ikke, at den findes i den anden.