Piliin ang cURL handler ng Guzzle para sa SOCKS proxy
Ang handler na sumusuporta lamang sa mga HTTP stream ay hindi makakakuha ng SOCKS negotiation mula sa proxy URL; pumili ng sumusuportang transport sa aktwal na PHP runtime.
Kapag sadyang pinili ang handler ng isang Guzzle client, makakagamit ng SOCKS ang stack na nakabatay sa cURL:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h hinihiling sa proxy na i-resolve ang pangalan ng destinasyon. Ipinapasa ng Guzzle ang endpoint sa libcurl, kaya dapat suportahan ng naka-load na libcurl build ang protocol na iyon. Nagbibigay ang listahan ng SOCKS5 proxy ng mga pampublikong kandidatong endpoint para sa proxy URL ng client.
Kung mayroon nang handler stack ang application, suriin ang pinagbabatayang transport bago ito palitan at mawala ang middleware. Ang handler na limitado sa PHP HTTP stream ay hindi makakapagpatupad ng SOCKS dahil lamang natatanggap ng client ang opsyong ito.
Suriin ang prosesong gumagawa ng kahilingan. Maaaring mag-load ang CLI PHP at PHP-FPM ng magkaibang configuration file at extension; ang paglitaw ng cURL sa isa ay hindi nagpapatunay na available ito sa isa pa.