בחירת מטפל ה-cURL של Guzzle עבור פרוקסי SOCKS
מטפל שתומך רק בזרמי HTTP לא יכול לקבל משא ומתן SOCKS מכתובת URL של פרוקסי; יש לבחור תעבורה תומכת בסביבת ה-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 מספקת מועמדים ציבוריים לנקודות קצה עבור כתובת הפרוקסי של הלקוח.
אם לאפליקציה כבר יש מחסנית מטפלים, בדקו את התעבורה שמתחתיה לפני שאתם מחליפים אותה ומאבדים תוכנת ביניים. מטפל המוגבל לזרמי HTTP של PHP אינו יכול לממש SOCKS רק משום שהלקוח מקבל את האפשרות הזו.
בדקו את התהליך שמבצע את הבקשה. CLI PHP ו-PHP-FPM יכולים לטעון קובצי תצורה ותוספים שונים; הימצאות cURL באחד אינה מוכיחה שהוא זמין בשני.