PHP-FPM (Fasticgi Process Manager Manager) သည် PHP အတွက် PHP အတွက်အရေးကြီးသောလုပ်ဆောင်မှုအင်ဂျင်တစ်ခုဖြစ်သည်။ Nginx တွင် Backend Support အဖြစ်ကျယ်ပြန့်စွာအသုံးပြုသည်။ 502 မကောင်းတဲ့တံခါးပေါက် အမှားကပုံမှန်အားဖြင့် Nginx နှင့် PHP-FPM အကြားဆက်သွယ်မှုပြတ်တောက်ခြင်းသို့မဟုတ်ပုံမှန်မဟုတ်သောတုန့်ပြန်မှုတို့အကြားဆက်သွယ်မှုပြတ်တောက်သွားကြောင်းဖော်ပြသည်။ ဤဆောင်းပါးသည်ရှုထောင့်အမျိုးမျိုးမှဖြစ်နိုင်သောအကြောင်းရင်းများနှင့်အကောင်းမြင်ဖြေရှင်းနည်းများကိုမိတ်ဆက်ပေးလိမ့်မည်။
မြင့်မားသောဝန်ဖြစ်စဉ်တွင် Php-FPM လုပ်ငန်းစဉ်သည်သယံဇာတများကုန်ခန်းခြင်းသို့မဟုတ်မလျော်ကန်သောပြုပြင်ပြောင်းလဲမှုကြောင့်ပျက်ကျနိုင်ပြီးတောင်းဆိုမှုကိုမစွမ်းသိမ်းမှုများပြုလုပ်နိုင်ခြင်းကြောင့်အမှားအယွင်းများကိုဖြစ်ပေါ်စေသည်။ လုပ်ငန်းစဉ်အခြေအနေကိုသင်ကြည့်ရှုနိုင်ပြီး 0 န်ဆောင်မှုကိုပြန်လည်စတင်ရန်ကြိုးစားနိုင်သည်။
$ systemctl status php-fpm
$ systemctl restart php-fpm
PHP-FPM process pool parameter သည်မှားယွင်းစွာသတ်မှတ်ထားပါက Max_children Setting သည်သေးငယ်လွန်းပါကတောင်းဆိုမှုကိုပိတ်ဆို့ခြင်းသို့မဟုတ်ငြင်းပယ်နိုင်သည်။ အောက်ပါ configuration ကိုစစ်ဆေးရန်နှင့်အဖွင့်ရန်အကြံပြုသည်။
$ vim /etc/php-fpm.d/www.conf
အကြံပြုထားသော configuration ကိုအောက်ပါအတိုင်းဖြစ်သည် -
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 500
PHP scripts များကိုကြာမြင့်စွာကာလကြာမြင့်စွာပြုလုပ်သောအခါ,
ဆက်သွယ်မှုအချိန်ကုန်ကိုတိုးချဲ့နိုင်သည်။
$ vim /etc/php-fpm.d/www.conf
ချိန်ညှိချက်များအကြံပြုချက်များ:
request_terminate_timeout = 180
အကယ်. အမြန်တက်ဒီလမ်းကြောင်းသို့မဟုတ် parameter setting ကို Nginx Configuration ဖိုင်တွင်မမှန်ကန်ပါကတောင်းဆိုမှုကို PHP-FPM သို့အောင်မြင်စွာမသွားနိုင်ပါ။
Nginx.conf ရှိ PHP တောင်းဆိုမှုများ၏တည်နေရာပြင်ဆင်မှုကိုစစ်ဆေးပါ။
$ vim /etc/nginx/nginx.conf
မှန်ကန်သော configuration ဥပမာ:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
အကယ်. ဆာဗာ၏မှတ်ဉာဏ်သို့မဟုတ် CPU အရင်းအမြစ်များကိုအကြီးအကျယ်သိမ်းပိုက်ပါက PHP-FPM သည်တောင်းဆိုမှုကိုတုံ့ပြန်ရန်လုပ်ငန်းစဉ်အသစ်တစ်ခုကိုမဖန်တီးနိုင်ပါ။ ၎င်းသည်အမှား 502 ခုကိုလည်းဖြစ်ပေါ်စေနိုင်သည်။
အောက်ပါ command များမှတဆင့်ဆာဗာအရင်းအမြစ်များအသုံးပြုမှုကိုစစ်ဆေးနိုင်သည်။
$ top
$ free -m
အရင်းအမြစ်များမလုံလောက်ကြောင်းသင်အတည်ပြုပါက, code and cachemation ယန္တရားကိုပိုမိုကောင်းမွန်စေရန် hardware configuration ကိုအဆင့်မြှင့်ခြင်းသို့မဟုတ်အရင်းအမြစ်သုံးစွဲမှုကိုလျှော့ချရန်စဉ်းစားနိုင်သည်။
PHP-FPM 502 အမှားအယွင်းများကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည် Nginx နှင့် PHP-FPM တို့အကြားအချိန်, PHP-FPM တို့အကြားအချိန်, ကျိုးကြောင်းဆီလျော်သော configuration နှင့်အရင်းအမြစ် optimization မှတစ်ဆင့်အမှားအယွင်းများကိုရှောင်ရှားနိုင်ရုံသာမကအမှားအယွင်းများကိုရှောင်ရှားနိုင်ရုံသာမက 0 န်ဆောင်မှုတည်ငြိမ်မှုနှင့်တုန့်ပြန်မှုနှုန်းကိုလည်းတိုးတက်စေနိုင်သည်။