Calm Hill My Random Thoughts

PHP-FPM & HTTP Headers

Apache 2.4 ပြောင်းလိုက်တော့ Header တွေပါမလာလို့ အတော်လေး ဒုက္ခရောက်လိုက်တယ် Server တွေရွေ့ရင်းနဲ့ Loading Test တွေလုပ်ရင်း Apache မှာ PHP Module အနေနဲ့က Loading အရမ်းများတဲ့အတွက် FastCGI ပြောင်းလိုက်ပြီးတော့ PHP-FPM သုံးလိုက်ရာမှာ Header တွေမပါလာပဲ ဒုက္ခတွေကနည်းနည်း အရောင်ပြောင်းပြီး ပြန်ရောက်လာပြန်တယ်။

အရင်တခါက Header တွေမှာ Special Characters ပါလာတဲ့အတွက် Drop လုပ်ချနေတာ ဒီတခါကတော့ အဲဒီ Header ကို Apache က Drop မလုပ်တော့ပေမယ့် CGI ဘက်ကိုပါမသွားတော့ဘူး အဲဒီတော့ ကိုယ်သုံးထားတဲ့ Header Name တွေကို Environment variables တွေအနေနဲ့ တကူးတကထည့်ပေးရတော့တယ်။ တခါကရေးဖူးတဲ့ Apache 2.4 & HTTP Header ရဲ့ Special Characters တွေကို လက်ခံဖို့အတွက်လည်း ထည့်ပေးရမယ် နောက်ထပ်အနေနဲ့ Variable Name တွေထပ်ထည့်ရမယ်။

setenvif module ကို enable လုပ်ထားရမှာဖြစ်ပြီးတော့ ဒီတခါမှာ Server တခုလုံးနဲ့ သက်ဆိုင်တာမဟုတ်ပဲ Host တခုချင်းပဲ သက်ဆိုင်တဲ့အတွက် Server Main Config တွေမှာမထည့်ပဲနဲ့ Virtual Host ထဲမှာပဲထည့်ပြီးတော့ Apache ကို Restart လုပ်ရင် လိုချင်တဲ့ Variable တွေကို $_SERVER ထဲမှာယူလို့ရပါလိမ့်မယ်။ တကယ်ကတော့ ဘယ်နားထည့်ထည့်ပါ ဒါပေမယ့်​ အချိန်ကြာလာတာနဲ့ မေ့မှာဖြစ်တဲ့အတွက် လိုအပ်တဲ့ Virtual Host အတွင်းမှာဖြစ်ရင် ရှာရလွယ်လို့ ထည့်တာတခုပါပဲ။

Configuration

SetEnvIf APP123_VAR1 "(.*)" APP123_VAR1=\(1
SetEnvIf APP123_VAR2 "(.*)" APP123_VAR2=\)1