Alegerea handler-ului cURL din Guzzle pentru un proxy SOCKS
Un handler limitat la fluxuri HTTP nu poate obține negocierea SOCKS dintr-un URL de proxy; alegeți un transport care o acceptă în mediul PHP real.
Când alegeți deliberat handler-ul unui client Guzzle, o stivă bazată pe cURL poate folosi SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h cere proxy-ului să rezolve numele destinației. Guzzle transmite endpoint-ul către libcurl, deci versiunea libcurl încărcată trebuie să accepte acel protocol. Lista de proxy SOCKS5 oferă candidați publici de endpoint pentru URL-ul de proxy al clientului.
Dacă aplicația are deja o stivă de handler-e, inspectați transportul de dedesubt înainte de a o înlocui și a pierde middleware. Un handler limitat la fluxurile HTTP din PHP nu poate implementa SOCKS doar pentru că clientul primește această opțiune.
Verificați procesul care face cererea. CLI PHP și PHP-FPM pot încărca fișiere de configurare și extensii diferite; prezența cURL într-unul nu dovedește disponibilitatea lui în celălalt.