သင့် terminal တွင် အလုပ်လုပ်သော proxy ကို PHP-FPM ဘာကြောင့် ဆုံးရှုံးသနည်း
Proxy ဖွဲ့စည်းမှုကို PHP-FPM worker များအထိ လိုက်ကြည့်ပြီး ၎င်းတို့၏ ပတ်ဝန်းကျင်ကို PHP stream အခြေအနေများနှင့် ခွဲခြားပါ။
တူညီသော PHP ဖိုင်တစ်ခုသည် terminal တွင် proxy ကို အသုံးပြုနိုင်ပြီး PHP-FPM က ဝန်ဆောင်သောအခါ တိုက်ရိုက်သွားနိုင်သည်။ ၎င်းကို လုပ်ဆောင်သော လုပ်ငန်းစဉ်များကို နှိုင်းယှဉ်ခြင်းဖြင့် စတင်ပါ။ သင့် terminal သည် PHP ကို shell ပတ်ဝန်းကျင်ဖြင့် စတင်သည်။ ဝဘ်ဆာဗာသည် FPM ဖန်တီးပြီးသော worker များထံ တောင်းဆိုချက် ပို့သည်။
Worker ၏ ပတ်ဝန်းကျင်ကို ကြည့်ပါ
FPM pool ဖွဲ့စည်းမှုသည် clear_env နှင့် တိကျသော env[NAME] ထည့်သွင်းမှုများကို ပေးသည်။ ပတ်ဝန်းကျင် ရှင်းလင်းမှု ဖွင့်ထားလျှင် login shell တွင် variable တစ်ခုကို export လုပ်ခြင်းက ၎င်းကို worker ထဲ မထည့်ပါ။ Pool ထည့်သွင်းမှုများက ရွေးချယ်ထားသော variable များကို ပေးပို့နိုင်သည်။
env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080
ဖွဲ့စည်းမှု ပြောင်းလဲမှုများကို သင့် deployment ၏ ပုံမှန် FPM ပြန်လည်ဖွင့်ခြင်း လုပ်ထုံးလုပ်နည်းဖြင့် အသုံးချပါ။ တန်ဖိုးများကို application ကို အမှန်တကယ် ဝန်ဆောင်သော pool တွင် ထားပါ။ အခြား pool၊ service account သို့မဟုတ် container က မှန်ကန်ပုံရသော ပြင်ဆင်မှု အကျိုးမရှိရသည့် အကြောင်းရင်းကို ရှင်းပြနိုင်သည်။
Live တောင်းဆိုချက်ကို debug လုပ်သောအခါ မျှော်လင့်ထားသော ဆက်တင်များ ရှိ/မရှိ ကိုသာ စစ်ဆေးပါ။ ပြည့်စုံသော ပတ်ဝန်းကျင် တန်ဖိုးများကို ပရင့်ထုတ်သော အများသူငှာ စစ်ဆေးရေး စာမျက်နှာသည် proxy အထောက်အထားများနှင့်အတူ မသက်ဆိုင်သော လျှို့ဝှက်ချက်များကို ဖော်ထုတ်နိုင်သည်။
ထို့နောက် PHP သယ်ယူပို့ဆောင်မှုကို စစ်ပါ
libcurl တွင် မှတ်တမ်းတင်ထားသော proxy ပတ်ဝန်းကျင် ကိုင်တွယ်မှု ရှိသည်။ တိကျသော PHP cURL handle တွင်လည်း ကိုယ်ပိုင် option များ ရှိသည်။ PHP ၏ HTTP stream wrapper တွင် သီးခြား context ဖွဲ့စည်းမှု ရှိသည်။ Worker ကို variable များ ပေးခြင်းက PHP network API တိုင်း ၎င်းတို့ကို အသုံးပြုစေမည် မဟုတ်ပါ။
၎င်းသည် အသုံးဝင်သော အပိုင်းနှစ်ပိုင်း စစ်ဆေးမှုကို ပေးသည်။ worker လက်ခံရရှိသည့်အရာကို အတည်ပြုပြီး ရွေးချယ်ထားသော HTTP client က proxy ဆက်တင်များကို မည်သို့ ဖတ်သည်ကို အတည်ပြုပါ။ CLI နှင့် FPM သည် တူညီသော တန်ဖိုးများ ရရှိသော်လည်း ကွဲပြားစွာ ပြုမူနေသေးလျှင် နောက်တွင် client option များနှင့် ရှောင်ကွင်းစည်းမျဉ်းများကို နှိုင်းယှဉ်ပါ။ shell profile ကို ထပ်ခါတလဲလဲ ပြင်ဆင်ခြင်းက worker ၏ HTTP client အတွင်းရှိ ကွာဟမှုကို မဖြေရှင်းနိုင်ပါ။