Triar el gestor cURL de Guzzle per a un proxy SOCKS
Un gestor només basat en fluxos HTTP no pot obtenir negociació SOCKS des d'una URL de proxy; trieu un transport compatible a l'entorn PHP real.
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.