Memilih handler cURL Guzzle untuk proksi SOCKS
Handler yang hanya mendukung aliran HTTP tidak dapat memperoleh negosiasi SOCKS dari URL proksi; pilih transport yang mendukung di runtime PHP sebenarnya.
Saat memilih handler klien Guzzle secara sengaja, tumpukan berbasis cURL dapat menggunakan SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h meminta proksi untuk menyelesaikan nama tujuan. Guzzle meneruskan endpoint ke libcurl, jadi build libcurl yang dimuat harus mendukung protokol tersebut. Daftar proksi SOCKS5 menyediakan kandidat endpoint publik untuk URL proksi klien.
Jika aplikasi sudah memiliki tumpukan handler, periksa transport yang mendasarinya sebelum menggantinya dan kehilangan middleware. Handler yang terbatas pada aliran HTTP PHP tidak dapat menerapkan SOCKS hanya karena klien menerima opsi ini.
Periksa proses yang membuat permintaan. CLI PHP dan PHP-FPM dapat memuat berkas konfigurasi dan ekstensi yang berbeda; keberadaan cURL di salah satunya tidak membuktikan ketersediaannya di yang lain.