PHP, CHDIR () နှင့် Chrose () တွင်လက်ရှိအလုပ်လုပ်နေသော directory သို့မဟုတ် file system root directory နှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ သူတို့မှာအလားတူလုပ်ဆောင်ချက်တွေရှိသော်လည်း၎င်းတို့သည်မရှိမဖြစ်လိုအပ်ပါသည်။ developer များဤလုပ်ဆောင်မှုနှစ်ခုအကြားကွဲပြားခြားနားမှုများကိုနားလည်ရန်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည်သူတို့၏ကွဲပြားခြားနားမှုများနှင့်အသုံးပြုမှုဆိုင်ရာအခြေအနေများကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။
CHDIR () သည် PHP တွင်အလုပ်လုပ်နေသောလုပ်ငန်းစဉ်၏လုပ်ငန်းလမ်းကြောင်းကိုပြောင်းလဲစေသည့် function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှု၏လုပ်ဆောင်ချက်သည်လက်ရှိ script ၏လုပ်ငန်းသုံးလမ်းညွှန်ကိုသတ်မှတ်ထားသောလမ်းကြောင်းသို့ပြောင်းလဲရန်ဖြစ်သည်။ CHDIR () ကိုအသုံးပြုခြင်းသည်လမ်းညွှန်အပြောင်းအလဲများကိုပြုလုပ်ရန်စနစ်တစ်ခုလုံး၏ root directory ကိုပြောင်းလဲလိမ့်မည်မဟုတ်ပါ။
function ရှေ့ပြေးပုံစံ :
bool chdir ( string $directory )
$ directory : ပစ်မှတ်လမ်းညွှန်သို့လမ်းကြောင်း။
ဥပမာ -
<?php
// လက်ရှိအလုပ်လုပ် directory output
echo getcwd(); // လက်ရှိလမ်းညွှန် output
// အလုပ်လုပ်လမ်းညွှန်ကိုပြောင်းပါ
chdir('/var/www/html');
// ပြောင်းလဲသွားသောလုပ်ငန်းလမ်းညွှန် output ကို
echo getcwd(); // ထုတ်လုပ်ခြင်း "/var/www/html"
?>
အထက်ပါကုဒ်တွင် CHDIR () ကို အသုံးပြုခြင်းသည် PHP script ၏အလုပ်လုပ်လမ်းညွှန်ကိုပြောင်းလဲစေသည်။ ဆိုလိုသည်မှာနောက်ဆက်တွဲဆွေမျိုးလမ်းကြောင်းလည်ပတ်မှုသည်ဤလမ်းညွှန်အသစ်ပေါ်တွင်အခြေခံသည်။
Chdir () နှင့်အလွန်ကွဲပြားခြားနားသောအခြား directory-related php function ကို chroot () သည်အခြား directory-related php function ဖြစ်သည်။ Chrooot () ၏ရည်ရွယ်ချက်မှာလက်ရှိဖြစ်စဉ်၏ root directory ကိုသတ်မှတ်ထားသော directory သို့ပြောင်းလဲရန်ဖြစ်သည်။ ဤပြောင်းလဲမှုသည်အခြေခံကျသည်, ၎င်းသည်ဖိုင်စနစ်အားလုပ်ငန်းစဉ်တစ်ခုလုံးကို 0 င်ရောက်နိုင်သည်။ ဆိုလိုသည်မှာလုပ်ငန်းစဉ်သည် root directory ပြင်ပရှိဖိုင်များကိုမသုံးနိုင်ပါ။
function ရှေ့ပြေးပုံစံ :
bool chroot ( string $directory )
$ directory : သတ်မှတ်ထားသော root directory ။
ဥပမာ -
<?php
// မှ root directory ကိုပြောင်းပါ /var/www
chroot('/var/www');
// root directory အပြင်ဘက်ရှိလမ်းကြောင်းတစ်ခုကိုကြည့်ရှုရန်ကြိုးပမ်းမှုကျရှုံးလိမ့်မည်
echo file_exists('/etc/passwd') ? 'File exists' : 'File not found';
?>
ဤဥပမာတွင် Chrooot () သည် လက်ရှိ script ၏ root directory ကို / var / www သို့ root directory ကိုပြောင်းလဲစေသည်။ ထို့ကြောင့်, ထိုကဲ့သို့သော / etc / passwd ကဲ့သို့သော system-level files များကိုရယူရန်မည်သည့်ကြိုးပမ်းမှုမဆို root directory အသစ်ကန့်သတ်ထားသောကြောင့်ပျက်ကွက်လိမ့်မည်။
အလုပ်လုပ်တဲ့အကွာအဝေး :
CHDIR () လုပ်ငန်းစဉ်၏ root directory ကိုမထိခိုက်စေဘဲ CHDIR () လုပ်ငန်းစဉ်၏လုပ်ငန်းစဉ်ဆိုင်ရာလမ်းညွှန်လမ်းညွှန်ကိုသာပြောင်းလဲစေသည်။ ၎င်းသည်ဆွေမျိုးလမ်းကြောင်းများခွဲခြမ်းစိတ်ဖြာခြင်းကိုသာသက်ရောက်သည်။
Chroroot () လုပ်ငန်းစဉ်တစ်ခုလုံး၏မူလစာမျက်နှာလမ်းညွှန်ကိုပြောင်းလဲစေခြင်းငှါလုပ်ငန်းစဉ်တစ်ခုလုံး၏လမ်းညွှန်ကိုပြောင်းလဲစေသည်။
အကျိုးသက်ရောက်မှုအတိုင်းအတာ :
CHDIR () သည်လက်ရှိဇာတ်ညွှန်းသို့မဟုတ်လက်ရှိ PHP လုပ်ငန်းစဉ်အတွက်သာတရားဝင်သည်။
Chroroot () သည်ကမ္ဘာလုံးဆိုင်ရာသက်ရောက်မှုတစ်ခုဖြစ်သည်။
လုံခြုံရေး -
CHDIR () သည်အတော်လေးရိုးရှင်းပြီးလုံခြုံရေးပြ issues နာများစွာမရှိပါ။ သို့သော်၎င်းသည်ဖိုင်လမ်းကြောင်း၏ခွဲခြမ်းစိတ်ဖြာမှုကိုသာပြောင်းလဲစေသည်။
chroot () သည် "hard" သည် "hard" ဖြစ်သည်။ ၎င်းကို charterized နှင့် sandboxed ပတ် 0 န်းကျင်တွင်အသုံးပြုလေ့ရှိပြီးလုပ်ငန်းစဉ်ဖိုင်စနစ်ကိုကန့်သတ်ထားခြင်းနှင့်လုပ်ငန်းလည်ပတ်မှုစနစ်လုံခြုံရေးကိုတိုးမြှင့်ခြင်းတို့ဖြင့်အသုံးပြုသည်။
CHDIR အတွက်သက်ဆိုင်သည့်အခြေအနေများ () :
CHDIR () ကို scripts switching အတွက် directory switching အတွက်အထူးသဖြင့်ဖိုင်အမျိုးအစားအမြောက်အများကိုကိုင်တွယ်ရန်လိုအပ်သည့် PHP application များတွင်အသုံးပြုသည်။ ၎င်းသည်အောက်ပါအခြေအနေများတွင်အထူးအသုံးဝင်သည်။
Processer ဖိုင်တင်ခြင်းများ - ဖိုင်တင်ခြင်းကိုသင်လုပ်ဆောင်သောအခါဖိုင်ကိုသီးခြားလမ်းညွှန်တစ်ခုသို့ပြောင်းရန်လိုအပ်နိုင်သည်။
ဖိုင်ရှာဖွေခြင်းနှင့်စာဖတ်ခြင်း - သင်၏ script သည်လမ်းညွှန်များကိုဖြတ်သန်းရန်လိုအပ်သည်ဆိုပါက Chdir () သည် အလုပ်လုပ်ရန်လမ်းညွှန်ကိုပြောင်းလဲရန်လိုအပ်လျှင်,
Command Line Script : PHP command line interface တွင် chdir () ကို သုံးပါ။
chroot အတွက်သက်ဆိုင်သည့်အခြေအနေများ () :
Chroroot () သည်ပိုမိုမြင့်မားသောလုံခြုံရေးလိုအပ်ချက်များအတွက်သင့်တော်ပြီးအောက်ပါအခြေအနေများတွင်တွေ့ရလေ့ရှိသည်။
Application Sandbox : စိတ်မချရသောအချက်အလက်များကိုလုပ်ဆောင်ရန်သို့မဟုတ်လုံခြုံရေးအတွက်လိုအပ်သည့်အခါလုပ်ငန်းစဉ်ကိုသတ်သတ်မှတ်မှတ်လမ်းညွှန်တစ်ခုသို့ကန့်သတ်ရန် chroroot () ကိုသုံးနိုင်သည်။
Virtual Host Readings envirement : multi-tenant server များအတွက် chroot () အတွက် chroot () ကို မတူညီသောအသုံးပြုသူများ၏ပတ် 0 န်းကျင်ကိုခွဲထုတ်ရန်နှင့်အသုံးပြုသူများကိုတစ် ဦး နှင့်တစ် ဦး လက်လှမ်းမမီနိုင်အောင်သေချာစေရန်အသုံးပြုနိုင်သည်။
ကွန်တိန်နာနည်းပညာ - အချို့သောကွန်တိန်နာနည်းပညာများ (ဥပမာ docker ကဲ့သို့သော) techerization နည်းပညာများ (ဥပမာ -) သည် chrooot () ကို အသုံးပြု. chroot () သည်အိမ်ရှင် operating system မှခွဲထုတ်ရန် chroot () ကို အသုံးပြုပါ။
CHDIR () နှင့် chroot () chdir () chroot () နှစ် ဦး စလုံးသည် directory operations နှင့်ဆက်စပ်သော်လည်းသူတို့၏သက်ရောက်မှုများနှင့်အသုံးပြုမှုအခြေအနေများသိသိသာသာကွဲပြားခြားနားသည်။ CHDIR () သည် file system တွင် rotelive path operations အတွက်ပိုမိုသင့်တော်သည်။ chrooot () သည်ပိုမိုကောင်းမွန်သောလုံခြုံရေးသို့မဟုတ်ကွန်တိန်နာများရှိသည့် applications များဖြင့်တွေ့ရလေ့ရှိသည်။ PHP တွင် CHDIR () သို့မဟုတ် chroot () ကို အသုံးပြုရန်ရွေးချယ်ခြင်းသည်သင်၏လျှောက်လွှာလိုအပ်ချက်များနှင့်လုံခြုံရေးလိုအပ်ချက်များပေါ်တွင်မူတည်သည်။