PHP-FPM وہ پراکسی کیوں کھو دیتا ہے جو آپ کے ٹرمینل میں کام کرتی ہے
پراکسی کنفیگریشن کو PHP-FPM ورکرز تک لے جائیں اور ان کے ماحول کو PHP اسٹریم سیاق و سباق سے الگ کریں۔
ایک ہی PHP فائل ٹرمینل میں پراکسی استعمال کر سکتی ہے اور جب PHP-FPM اسے پیش کرتا ہے تو سیدھا جا سکتی ہے۔ اسے چلانے والے عملوں کا موازنہ کر کے شروع کریں۔ آپ کا ٹرمینل PHP کو shell ماحول کے ساتھ شروع کرتا ہے؛ ویب سرور ان ورکرز کو درخواست بھیجتا ہے جو FPM پہلے ہی بنا چکا ہے۔
ورکر کے ماحول کو دیکھیں
FPM پول کنفیگریشن clear_env اور واضح env[NAME] اندراجات فراہم کرتی ہے۔ ماحول کی صفائی فعال ہونے پر، لاگ ان shell میں متغیر ایکسپورٹ کرنا اسے ورکر میں نہیں رکھتا۔ پول اندراجات منتخب متغیرات بھیج سکتے ہیں:
env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080
کنفیگریشن تبدیلیاں اپنی ڈیپلائمنٹ کے معمول کے FPM ری لوڈ طریقہ کار کے ذریعے لاگو کریں۔ اقدار کو اس پول میں رکھیں جو واقعی ایپلیکیشن کی خدمت کرتا ہے۔ کوئی دوسرا پول، سروس اکاؤنٹ یا کنٹینر بتا سکتا ہے کہ بظاہر درست ترمیم کا اثر کیوں نہیں ہوتا۔
لائیو درخواست کی ڈیبگنگ کرتے وقت صرف یہ دیکھیں کہ متوقع ترتیبات موجود ہیں یا نہیں۔ مکمل ماحولیاتی اقدار چھاپنے والا عوامی تشخیصی صفحہ پراکسی اسناد کے ساتھ غیر متعلقہ راز بھی ظاہر کر سکتا ہے۔
پھر PHP ٹرانسپورٹ چیک کریں
libcurl میں پراکسی ماحول کی دستاویزی ہینڈلنگ ہے؛ واضح PHP cURL ہینڈل کے بھی اپنے اختیارات ہیں۔ PHP کا HTTP اسٹریم ریپر الگ سیاق و سباق کنفیگریشن رکھتا ہے۔ ورکر کو متغیرات فراہم کرنے سے ہر PHP نیٹ ورک API انہیں استعمال نہیں کرتا۔
اس سے ایک مفید دو حصوں کی جانچ ملتی ہے: تصدیق کریں کہ ورکر نے کیا وصول کیا، پھر تصدیق کریں کہ منتخب HTTP کلائنٹ پراکسی ترتیبات کیسے پڑھتا ہے۔ اگر CLI اور FPM کو یکساں اقدار ملتی ہیں مگر پھر بھی مختلف برتاؤ کرتے ہیں تو اگلے مرحلے میں کلائنٹ اختیارات اور بائی پاس قواعد کا موازنہ کریں۔ shell پروفائل بار بار ایڈٹ کرنا ورکر کے HTTP کلائنٹ کے اندر کے فرق کو حل نہیں کر سکتا۔