SOCKS प्रोक्सीका लागि Guzzle को cURL ह्यान्डलर छान्ने
केवल HTTP स्ट्रिम समर्थन गर्ने ह्यान्डलरले प्रोक्सी URL बाट SOCKS वार्ता पाउँदैन; वास्तविक PHP रनटाइममा समर्थन गर्ने ट्रान्सपोर्ट छान्नुहोस्।
Guzzle क्लाइन्टको ह्यान्डलर जानाजान छान्दा, cURL आधारित स्ट्याकले SOCKS प्रयोग गर्न सक्छ:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h ले प्रोक्सीलाई गन्तव्य नाम समाधान गर्न भन्छ। Guzzle ले endpoint libcurl लाई दिन्छ, त्यसैले लोड गरिएको libcurl बिल्डले त्यो प्रोटोकल समर्थन गर्नुपर्छ। SOCKS5 प्रोक्सी सूची ले क्लाइन्ट प्रोक्सी URL का लागि सार्वजनिक endpoint उम्मेदवारहरू दिन्छ।
यदि एप्लिकेसनसँग पहिले नै ह्यान्डलर स्ट्याक छ भने, त्यसलाई बदलेर मिडलवेयर गुमाउनु अघि यसको आधारभूत ट्रान्सपोर्ट जाँच्नुहोस्। केवल PHP HTTP स्ट्रिममा सीमित ह्यान्डलरले क्लाइन्टले यो विकल्प पाएको कारणले मात्र SOCKS लागू गर्न सक्दैन।
अनुरोध गर्ने प्रक्रिया जाँच्नुहोस्। CLI PHP र PHP-FPM ले फरक कन्फिगरेसन फाइल र एक्सटेन्सन लोड गर्न सक्छन्; एउटामा cURL हुनुले अर्कोमा उपलब्ध भएको प्रमाण दिँदैन।