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 ଏଣ୍ଡପଏଣ୍ଟକୁ libcurl କୁ ପଠାଏ, ତେଣୁ ଲୋଡ୍ ହୋଇଥିବା libcurl ବିଲଡ୍ ସେହି ପ୍ରୋଟୋକଲ ସମର୍ଥନ କରିବା ଆବଶ୍ୟକ। SOCKS5 ପ୍ରକ୍ସି ତାଲିକା କ୍ଲାଏଣ୍ଟ ପ୍ରକ୍ସି URL ପାଇଁ ସାର୍ବଜନୀନ ଏଣ୍ଡପଏଣ୍ଟ ପ୍ରାର୍ଥୀ ଯୋଗାଏ।
ଯଦି ଆପଣଙ୍କ ଆପ୍ଲିକେସନରେ ପୂର୍ବରୁ ହ୍ୟାଣ୍ଡଲର ଷ୍ଟାକ ଅଛି, ତାହାକୁ ବଦଳାଇ ମିଡଲୱେର ହରାଇବା ପୂର୍ବରୁ ଏହାର ଅନ୍ତର୍ନିହିତ ଟ୍ରାନ୍ସପୋର୍ଟ ଯାଞ୍ଚ କରନ୍ତୁ। କେବଳ PHP HTTP ଷ୍ଟ୍ରିମରେ ସୀମିତ ହ୍ୟାଣ୍ଡଲର କେବଳ କ୍ଲାଏଣ୍ଟ ଏହି ବିକଳ୍ପ ପାଇବା ହେତୁ SOCKS ଲାଗୁ କରିପାରିବ ନାହିଁ।
ଅନୁରୋଧ କରୁଥିବା ପ୍ରକ୍ରିୟା ଯାଞ୍ଚ କରନ୍ତୁ। CLI PHP ଏବଂ PHP-FPM ଭିନ୍ନ କନଫିଗରେସନ ଫାଇଲ ଏବଂ ଏକ୍ସଟେନସନ ଲୋଡ୍ କରିପାରନ୍ତି; ଗୋଟିଏରେ cURL ଥିବା ଅନ୍ୟଟିରେ ଏହାର ଉପଲବ୍ଧତା ପ୍ରମାଣ କରେ ନାହିଁ।