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 ഉണ്ടെന്നത് മറ്റൊന്നിൽ അത് ലഭ്യമാണെന്ന് തെളിയിക്കുന്നില്ല.