PHP applications များဖွံ့ဖြိုးဆဲနှင့်ဖြန့်ချိချိန်တွင်သင်၏ PHP ပတ် 0 န်းကျင်တွင် dypp ပတ် 0 န်းကျင်တွင်အလုပ်လုပ်နေသည်ကိုသိရှိပြီးသင်ပစ်မှတ်ထားသည့်အကောင်းမြင်မှုများနှင့်အပြောင်းအလဲများကိုပြုလုပ်ရန်ကူညီနိုင်သည်။ များသောအားဖြင့်ကွန်တိန်နာပတ်ဝန်းကျင်သည်သီးခြား runtime ပတ် 0 န်းကျင်ကိုဖြစ်ပေါ်စေသည်။
ဤဆောင်းပါးသည် PHP ၏ PHP_UNAME () function ကိုမည်သို့အသုံးပြုရမည်ကိုသင် PHP သည် Docyer ကွန်တိန်နာတွင်အလုပ်လုပ်သည်ကိုဆုံးဖြတ်ရန်မိတ်ဆက်ပေးလိမ့်မည်။
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 င်သည်။
docker ကွန်တိန်နာများသည်များသောအားဖြင့်သတ်သတ်မှတ်မှတ် kernel versions များကို အသုံးပြု. ကွန်တိန်နာရှိ / proc / 1 / Cgroup တွင်ကွန်တိန်နာတွင်ပါ 0 င်သည်။ ထို့ကြောင့် PHP သည် Php_uname () ကို အသုံးပြု. ဆိုက်ဂိတ်တွင်ရှိမဆုံးဖြတ်ရန်မလွယ်ကူပါ။ သို့သော်ကျွန်ုပ်တို့သည်စနစ်ဖိုင်များကိုပေါင်းစပ်ခြင်းဖြင့်ဆုံးဖြတ်နိုင်သည်။
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 ကွန်တိန်နာ၏ဝိသေသလက္ခဏာများကိုစစ်ဆေးရန်လိုအပ်သည်။
/ 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 ကွန်တိန်နာတွင်လည်ပတ်နေသည်ကိုသေချာအောင်လုပ်နိုင်သည်။
<?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 容器အလယ်ပိုင်း。";
}
?>
အထက်ဖော်ပြပါနည်းလမ်းကို အသုံးပြု. PHP_Uname () ကို သုံးနိုင်သည်။ PHP သည် docker ကွန်တိန်နာတွင်လည်ပတ်နေသည်ရှိမရှိဆုံးဖြတ်ရန် / 1 / Cgroup ဖိုင်တွင် down / prot / 1 / cgroup file ကိုစစ်ဆေးရန်ပေါင်းစပ်နိုင်သည်။ ၎င်းသည်ကွန်တိန်နာပတ်ဝန်းကျင်တွင်သတ်သတ်မှတ်မှတ်လုပ်ရပ်များသို့မဟုတ်အပြောင်းအလဲများကိုလုပ်ဆောင်ရန်သင့်အားကူညီရန်သပ်သပ်ရပ်ရပ်နှင့်ထိရောက်သောနည်းလမ်းဖြစ်သည်။
ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ သင့်တွင်မေးခွန်းများပိုများလျှင်ကျွန်ုပ်တို့၏ဝက်ဘ်ဆိုက်ကိုကြည့်ပါ။