Choisir le gestionnaire cURL de Guzzle pour un proxy SOCKS
Un gestionnaire limité aux flux HTTP ne peut pas obtenir de négociation SOCKS depuis une URL de proxy ; choisissez un transport compatible dans l'environnement PHP réel.
Lorsque vous choisissez délibérément le gestionnaire d'un client Guzzle, une pile reposant sur cURL peut utiliser SOCKS :
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h demande au proxy de résoudre le nom de destination. Guzzle transmet le point de terminaison à libcurl, donc la version de libcurl chargée doit prendre en charge ce protocole. La liste de proxys SOCKS5 fournit des candidats publics de point de terminaison pour l'URL de proxy du client.
Si l'application possède déjà une pile de gestionnaires, examinez son transport sous-jacent avant de la remplacer et de perdre des intergiciels. Un gestionnaire limité aux flux HTTP de PHP ne peut pas implémenter SOCKS simplement parce que le client reçoit cette option.
Vérifiez le processus qui exécute la requête. CLI PHP et PHP-FPM peuvent charger des fichiers de configuration et des extensions différents ; la présence de cURL dans l'un ne prouve pas sa disponibilité dans l'autre.