Quan trieu deliberadament el gestor d'un client Guzzle, una pila basada en cURL pot fer servir SOCKS:

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

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

socks5h demana al proxy que resolgui el nom de destinació. Guzzle passa el punt final a libcurl, per tant la versió de libcurl carregada ha de suportar aquest protocol. La llista de proxys SOCKS5 proporciona candidats públics de punt final per a l'URL de proxy del client.

Si l'aplicació ja té una pila de gestors, inspeccioneu-ne el transport subjacent abans de substituir-la i perdre middleware. Un gestor limitat als fluxos HTTP de PHP no pot implementar SOCKS només perquè el client rebi aquesta opció.

Comproveu el procés que fa la petició. CLI PHP i PHP-FPM poden carregar fitxers de configuració i extensions diferents; que cURL aparegui en un no estableix que estigui disponible en l'altre.

Articles relacionats