Když cíleně volíte handler klienta Guzzle, stack postavený na cURL může používat SOCKS:

$stack = \GuzzleHttp\HandlerStack::create(
    new \GuzzleHttp\Handler\CurlHandler()
);

$client = new \GuzzleHttp\Client([
    'handler' => $stack,
    'proxy' => 'socks5h://proxy.example.net:1080',
]);

socks5h žádá proxy, aby přeložila název cíle. Guzzle předává koncový bod libcurl, takže načtená sestava libcurl musí tento protokol podporovat. Seznam SOCKS5 proxy nabízí veřejné kandidáty koncových bodů pro URL proxy klienta.

Pokud aplikace již vlastní stack handlerů, prozkoumejte jeho podkladový transport dřív, než ho nahradíte a ztratíte middleware. Handler omezený na PHP HTTP streamy nemůže implementovat SOCKS jen proto, že klient tuto volbu dostane.

Zkontrolujte proces, který požadavek provádí. CLI PHP a PHP-FPM mohou načítat různé konfigurační soubory a rozšíření; přítomnost cURL v jednom nedokazuje, že je dostupné v druhém.

Související články