Scegliere l'handler cURL di Guzzle per un proxy SOCKS
Un handler limitato ai flussi HTTP non può ottenere la negoziazione SOCKS da un URL di proxy; scegli un trasporto supportato nell'ambiente PHP reale.
Quando scegli deliberatamente l'handler di un client Guzzle, uno stack basato su cURL può usare SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h chiede al proxy di risolvere il nome di destinazione. Guzzle passa l'endpoint a libcurl, quindi la build di libcurl caricata deve supportare quel protocollo. La lista di proxy SOCKS5 fornisce candidati pubblici di endpoint per l'URL del proxy del client.
Se l'applicazione possiede già uno stack di handler, esamina il trasporto sottostante prima di sostituirlo e perdere middleware. Un handler limitato ai flussi HTTP di PHP non può implementare SOCKS solo perché il client riceve questa opzione.
Controlla il processo che esegue la richiesta. CLI PHP e PHP-FPM possono caricare file di configurazione ed estensioni diversi; la presenza di cURL in uno non dimostra che sia disponibile nell'altro.