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.

Relaterede artikler