လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အခြားရွေးချယ်စရာအသုံးပြုမှု (php_uname () နှင့်ပေါင်းစပ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အခြားရွေးချယ်စရာအသုံးပြုမှု

အခြားရွေးချယ်စရာအသုံးပြုမှု (php_uname () နှင့်ပေါင်းစပ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အခြားရွေးချယ်စရာအသုံးပြုမှု

M66 2025-06-02

PHP applications များဖွံ့ဖြိုးဆဲနှင့်ဖြန့်ချိချိန်တွင်သင်၏ PHP ပတ် 0 န်းကျင်တွင် dypp ပတ် 0 န်းကျင်တွင်အလုပ်လုပ်နေသည်ကိုသိရှိပြီးသင်ပစ်မှတ်ထားသည့်အကောင်းမြင်မှုများနှင့်အပြောင်းအလဲများကိုပြုလုပ်ရန်ကူညီနိုင်သည်။ များသောအားဖြင့်ကွန်တိန်နာပတ်ဝန်းကျင်သည်သီးခြား runtime ပတ် 0 န်းကျင်ကိုဖြစ်ပေါ်စေသည်။

ဤဆောင်းပါးသည် PHP ၏ PHP_UNAME () function ကိုမည်သို့အသုံးပြုရမည်ကိုသင် PHP သည် Docyer ကွန်တိန်နာတွင်အလုပ်လုပ်သည်ကိုဆုံးဖြတ်ရန်မိတ်ဆက်ပေးလိမ့်မည်။

1 ။ php_uname () function ကဘာလဲ။

PHP_Uname () သည် PHP ၏ built-in function ဖြစ်သည်။ ၎င်းကို UNIX စနစ်များရှိ Unix Systems နှင့်ဆင်တူသည့်စနစ်သတင်းအချက်အလက်များကိုပြန်လည်ပေးပို့ရန်အသုံးပြုသည်။ ၎င်းသည် operating system name, host name, version နှင့်လက်ရှိစနစ်၏အခြားအချက်အလက်များကိုပြန်ပို့လိမ့်မည်။

လုပ်ဆောင်ချက်၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 php_uname();

၎င်းသည် (operating system ပေါ် မူတည်. ) အောက်ပါနှင့်ဆင်တူသည့် string ကိုပြန်ပို့လိမ့်မည်။

 Linux myhostname 4.15.0-45-generic #48-Ubuntu SMP Thu Jan 17 16:24:23 UTC 2019 x86_64

ဤ string တွင် operating system type, host name, kernel version စသည်တို့ကဲ့သို့သောသတင်းအချက်အလက်များပါ 0 င်သည်။

2 ။ PHP သည် Docyer ကွန်တိန်နာတွင်လည်ပတ်မှုရှိမရှိဆုံးဖြတ်ရန်မည်သို့ဆုံးဖြတ်ရမည်နည်း။

docker ကွန်တိန်နာများသည်များသောအားဖြင့်သတ်သတ်မှတ်မှတ် kernel versions များကို အသုံးပြု. ကွန်တိန်နာရှိ / proc / 1 / Cgroup တွင်ကွန်တိန်နာတွင်ပါ 0 င်သည်။ ထို့ကြောင့် PHP သည် Php_uname () ကို အသုံးပြု. ဆိုက်ဂိတ်တွင်ရှိမဆုံးဖြတ်ရန်မလွယ်ကူပါ။ သို့သော်ကျွန်ုပ်တို့သည်စနစ်ဖိုင်များကိုပေါင်းစပ်ခြင်းဖြင့်ဆုံးဖြတ်နိုင်သည်။

အဆင့်

  1. php_uname () output ကိုကြည့်ပါ

ပထမ ဦး စွာ php_uname () operating system အချက်အလက်ကို output လုပ်ရန်:

 echo php_uname();

သင်အောက်ပါနှင့်ဆင်တူ output ကိုရလိမ့်မည်:

 Linux myhostname 5.4.0-100-generic #113-Ubuntu SMP Wed Nov 25 13:02:28 UTC 2020 x86_64

PHP တွင် PHP တွင်အလုပ်လုပ်နေသည်ကိုတိုက်ရိုက်မပြောပါ။ နောက်ထပ်အတည်ပြုရန်အတွက်ကျွန်ုပ်တို့သည် Docker ကွန်တိန်နာ၏ဝိသေသလက္ခဏာများကိုစစ်ဆေးရန်လိုအပ်သည်။

  1. / proc / 1 / cgroup ဖိုင်နှင့်အတူပေါင်းစပ်

docker ကွန်တိန်နာ၏ဖိုင်စနစ်သည်များသောအားဖြင့် / proc / 1 / Cgroup ဖိုင်ပါ 0 င်သည်။ ဖိုင်၏အကြောင်းအရာများကိုရှာဖွေခြင်းအားဖြင့်၎င်းသည် docker ပတ်ဝန်းကျင်တွင်လည်ပတ်နေသလား,

အောက်ပါကုဒ်ကိုစစ်ဆေးနိုင်သည်။

 function isRunningInDocker() {
    // တည်ရှိမလားစစ်ဆေးပါ /proc/1/cgroup စာချုပ်စာတမ်း
    if (is_readable('/proc/1/cgroup')) {
        $cgroup = file_get_contents('/proc/1/cgroup');
        
        // ၎င်းတွင်ရှိမရှိဆုံးဖြတ်ရန် docker လိုဂို
        if (strpos($cgroup, 'docker') !== false) {
            return true; // ပြေး Docker အလယ်ပိုင်း
        }
    }
    return false; // 未ပြေး Docker အလယ်ပိုင်း
}

if (isRunningInDocker()) {
    echo "PHP ဆောင်ရွက်ဆဲဖြစ်သည် Docker 容器အလယ်ပိုင်း运行!";
} else {
    echo "PHP 没有ပြေး Docker 容器အလယ်ပိုင်း。";
}

ရှင်းပြပါ:

  • Code သည် / proc / 1 / cgroup ဖိုင်ကိုစစ်ဆေးပြီး docy နှင့်ဆက်စပ်သောအမှတ်အသားများရှိ, မရှိရှာဖွေသည်။

  • အကယ်. ဖိုင်တွင် docker မှတ်ပုံတင် string ကိုပါ 0 င်ပါက PHP သည် docker ကွန်တိန်နာတွင်လည်ပတ်နေသည်ကိုသေချာအောင်လုပ်နိုင်သည်။

3 ။ ပြီးပြည့်စုံသောကုဒ်ဥပမာ

 <?php

// အသုံးပြု php_uname() operating system ကိုသတင်းအချက်အလက်ရယူပါ
echo 'operating system သတင်းအချက်အလက်: ' . php_uname() . "\n";

// ဟုတ်လားစစ်ဆေးပါ Docker 容器အလယ်ပိုင်း运行
function isRunningInDocker() {
    if (is_readable('/proc/1/cgroup')) {
        $cgroup = file_get_contents('/proc/1/cgroup');
        if (strpos($cgroup, 'docker') !== false) {
            return true; // ဟုတ်ကဲ့ Docker ပတ်ဝန်းကျင်
        }
    }
    return false; // 不ဟုတ်ကဲ့ Docker ပတ်ဝန်းကျင်
}

if (isRunningInDocker()) {
    echo "PHP ဆောင်ရွက်ဆဲဖြစ်သည် Docker 容器အလယ်ပိုင်း运行!";
} else {
    echo "PHP 没有ပြေး Docker 容器အလယ်ပိုင်း。";
}
?>

4 ။ နိဂုံးချုပ်

အထက်ဖော်ပြပါနည်းလမ်းကို အသုံးပြု. PHP_Uname () ကို သုံးနိုင်သည်။ PHP သည် docker ကွန်တိန်နာတွင်လည်ပတ်နေသည်ရှိမရှိဆုံးဖြတ်ရန် / 1 / Cgroup ဖိုင်တွင် down / prot / 1 / cgroup file ကိုစစ်ဆေးရန်ပေါင်းစပ်နိုင်သည်။ ၎င်းသည်ကွန်တိန်နာပတ်ဝန်းကျင်တွင်သတ်သတ်မှတ်မှတ်လုပ်ရပ်များသို့မဟုတ်အပြောင်းအလဲများကိုလုပ်ဆောင်ရန်သင့်အားကူညီရန်သပ်သပ်ရပ်ရပ်နှင့်ထိရောက်သောနည်းလမ်းဖြစ်သည်။

ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ သင့်တွင်မေးခွန်းများပိုများလျှင်ကျွန်ုပ်တို့၏ဝက်ဘ်ဆိုက်ကိုကြည့်ပါ။