လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP SymLink ကို သုံး. သင်္ကေတ links များကိုဖန်တီးပါ

PHP SymLink ကို သုံး. သင်္ကေတ links များကိုဖန်တီးပါ

gitbox 2025-05-26

Linux နှင့် MacOS ကဲ့သို့သော unix ကဲ့သို့သောစနစ်များတွင်သင်္ကေတ link (soft link များဟုလည်းလူသိများသည့်သင်္ကေတ link) သည်အလွန်အသုံးဝင်သောဖိုင်စနစ်ဖြစ်သည်။ ၎င်းသည်သင့်အားအခြားလမ်းကြောင်းမှတစ်ဆင့်၎င်းတို့ကိုကြည့်ရှုရန်ခွင့်ပြုထားသောဖိုင် (သို့) လမ်းညွှန်တစ်ခုအတွက်ဖြတ်လမ်းများကိုဖန်တီးရန်ခွင့်ပြုသည်။ PHP သည်ထိုကဲ့သို့သောလင့်ခ်များကိုဖန်တီးရန် built-in function symlink () ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည်အခြေခံများမှ စ. PHP ၏ Symlink (Symlink () function ကိုဖန်တီးရန်နှင့်စီမံခန့်ခွဲရန် PHP ၏ Symlink () function ကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာရန်သင့်အားစာသင်ခန်းများဖန်တီးရန်နှင့်သင်မြန်မြန်ဆန်ဆန်စတင်ရန်ကူညီရန်လက်တွေ့ကျပုံများပေးပါမည်။

1 ။ သင်္ကေတ link ဆိုတာဘာလဲ။

သင်္ကေတ link သည်အခြားဖိုင်သို့မဟုတ်လမ်းညွှန်တစ်ခု၏လမ်းကြောင်းကိုရည်ညွှန်းသည်။ ၎င်းသည် Windows Systems တွင် "shortcut" နှင့်တူသော်လည်း၎င်းသည်ပိုမိုအားကောင်းလာသည်။ သင်အသုံးပြုနိုင်သည်

  • ရှုပ်ထွေးသောလမ်းကြောင်းများသို့ဝင်ရောက်ခွင့်ကိုရိုးရှင်းအောင်ပြုလုပ်ခြင်း,

  • အချို့သောအရင်းအမြစ်များကိုစီမံကိန်းမျိုးစုံဖြင့်မျှဝေပါ။

  • Reade_2025_05 သို့ လက်ရှိ ချိတ်ဆက်မှုကဲ့သို့သောဗားရှင်းစီမံခန့်ခွဲမှုပုံစံကိုဖန်တီးပါ။

  • ဖိုင်ဖွဲ့စည်းပုံကို redirect လုပ်ထားပေမယ့်ဒေတာကိုမိတ္တူကူးမထားဘူး။

2 ။ symlink () function ကိုမိတ်ဆက်

PHP မှ Symlink () function ကိုအောက်ပါအတိုင်းသတ်မှတ်ထားသည် -

 bool symlink(string $target, string $link)
  • $ Target : သင်ချိတ်ဆက်လိုသည့်မူရင်းဖိုင်သို့မဟုတ်လမ်းညွှန်သို့လမ်းကြောင်း,

  • $ link : သင်ဖန်တီးလိုသည့်သင်္ကေတ link သို့လမ်းကြောင်း။

အကယ်. မှန်ကန်သော အောင်မြင်လျှင်မှားယွင်းသောပျက်ကွက်ပါကမှားယွင်းသော အယူမှား ပြန်လာသည်။

မှတ်ချက် - ဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်း PHP script သည် File System Permission အလုံအလောက်ရှိပြီးအချို့မျှဝေထားသောအိမ်ရှင်များသို့မဟုတ်ကန့်သတ်ထားသည့်ပတ်ဝန်းကျင်တွင်မသန်မစွမ်းနိုင်ရန်လိုအပ်သည်။

3 ။ အခြေခံဥပမာ - ဖိုင်များအတွက်သင်္ကေတလိုင်းများကိုဖန်တီးပါ

အောက်ပါဥပမာသည် /var/www/html/storage/data.json သို့ /VAR/WWW/HTML/Public/Data.json သို့ဖိုင်တစ်ပုဒ်ကိုချိတ်ဆက်ထားသည်။

 <?php
$target = '/var/www/html/storage/data.json';
$link = '/var/www/html/public/data.json';

if (symlink($target, $link)) {
    echo "သင်္ကေတ link ဖန်တီးမှုကိုအောင်မြင်စွာ";
} else {
    echo "ဖန်တီးမှုပျက်ကွက်";
}
?>

ဤ script ကိုဖွင့်ပြီးနောက်, ဒေတာအမည်ရှိ diamed.json ကို အများပြည်သူ လမ်းညွှန်တွင်တွေ့ရလိမ့်မည်

4 ။ လမ်းညွှန်များအတွက်သင်္ကေတလိုင်းများကိုဖန်တီးပါ

directory တစ်ခုလုံးအတွက် link များကိုလည်းသင်ဖန်တီးနိုင်သည်။

 <?php
$target = '/var/www/html/storage/';
$link = '/var/www/html/public/storage';

if (symlink($target, $link)) {
    echo "目录သင်္ကေတ link ဖန်တီးမှုကိုအောင်မြင်စွာ";
} else {
    echo "ဖန်တီးမှုပျက်ကွက်";
}
?>

သိုလှောင်မှု directory ကို web access အတွက် အများသုံး လမ်းညွှန်သို့ချိတ်ဆက်ခြင်းစသည့် Laravel ကဲ့သို့သော laravel ကဲ့သို့သောမူဘောင်များတွင်တွေ့ရလေ့ရှိသည်။

5 ။ လက်တွေ့အမှုကို: ဗားရှင်းဖွဲ့စည်းပုံကိုဖြန့်ဖြထား

ဖြန့်ချိရေးလမ်းညွှန်၏ဗားရှင်းများစွာရှိသည်ဟုမြင်ယောင်ကြည့်ပါ။

 /var/www/releases/
    ├── v1.0.0/
    ├── v1.1.0/
    └── v2.0.0/

သင် / var / www / html / html / current ကို အမြဲတမ်းနောက်ဆုံးပေါ်ဗားရှင်းကိုအမြဲတမ်းညွှန်ပြလိုသည်။ PHP တွင် dynamally link တစ်ခုဖန်တီးနိုင်သည်။

 <?php
$newVersion = 'v2.0.0';
$target = "/var/www/releases/$newVersion";
$link = '/var/www/html/current';

if (is_link($link)) {
    unlink($link); // ပထမ ဦး ဆုံးအဟောင်းသင်္ကေတ link ကိုဖျက်ပါ
}

if (symlink($target, $link)) {
    echo "ပြီးပြီ current Link ကို update လုပ် $newVersion";
} else {
    echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ";
}
?>

ဤနည်းအားဖြင့်အသုံးပြုသူများသည် gitbox.net/cubrent သို့လည်ပတ်သောအခါနောက်ဆုံးပေါ်ဖြန့်ကျက်မှုဗားရှင်းကိုအမြဲတမ်းရရှိကြသည်။

6 ။ ကိုင်တွယ်ခြင်းနှင့်ခွင့်ပြုချက်ပြ issues နာများ

Symlink () ကို အသုံးပြုသည့်အခါအောက်ပါပြ problems နာများသည်များသောအားဖြင့်ဖြစ်သည်။

  • ပစ်မှတ်လမ်းကြောင်းမရှိပါ - $ target ကို တည်ရှိပါ။

  • Link သည်ရှိပြီးသား ဖိုင်များ (သို့မဟုတ်) သို့မဟုတ် is_link () is_link () ကို သုံးပါ။

  • ခွင့်ပြုချက်မရပဲလင့်များကိုဖန်တီးပါ ။ အထူးသဖြင့် Linux တွင်အသုံးပြုသူများသည် PHP ကိုဖွင့်ရန်လိုအပ်သည့်အသုံးပြုသူများသည် PHP ကိုဖွင့်ရန်လိုအပ်နိုင်သည်။

ဥပမာ -

 <?php
$target = '/var/www/html/storage/data.json';
$link = '/var/www/html/public/data.json';

if (file_exists($link) || is_link($link)) {
    echo "ဒီ link ကိုရှိပြီးသား,ဖန်တီး. မရပါ";
} else {
    if (symlink($target, $link)) {
        echo "Link ဖန်တီးမှုကိုအောင်မြင်စွာ";
    } else {
        echo "链接ဖန်တီးမှုပျက်ကွက်,ကျေးဇူးပြု. ခွင့်ပြုချက်စစ်ဆေးပါ";
    }
}
?>

7 ။ သိကောင်းစရာများနှင့်အဆင့်မြင့်အကြံပြုချက်များ

  • PHP scripts သည်အချို့သောကန့်သတ်ချက်များကိုကျော်လွှားရန်လင့်များကိုဖန်တီးရန် LNS ကို SHPL_EXEC () နှင့်ပေါင်းစပ်နိုင်သည်။

  • သင်္ကေတ link ပျက်ကွက်မှုကိုရှောင်ရှားရန်ပကတိလမ်းကြောင်းများကိုသုံးပါ။

  • သင်္ကေတ link ယုတ္တိဗေဒကိုအလိုအလျောက်တိုးတက်စေရန်ဖြန့်ကျက်သော script တွင်ထည့်နိုင်သည်။

အကျဉ်းချုပ်

PHP ၏ Symlink () function သည်သင့်အား File Systems ကိုအသုံးပြုရန်ပြောင်းလွယ်ပြင်လွယ်ရှိသည့် file systems များကိုအထူးသဖြင့်ဖြန့်ကျက်ခြင်း, အရင်းအမြစ်ပြန်ဖွင့်ခြင်း, ၎င်းသည်ကြီးမားသောစီမံကိန်းလမ်းညွှန်များကိုစီမံခြင်းရှိမရှိ, ဤဆောင်းပါးတွင်လက်တွေ့ကျမူနာများကသူတို့ကိုအမှန်တကယ်စီမံကိန်းများတွင်အလျင်အမြန်ကျင့်သုံးနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။

အခုစမ်းကြည့်ရအောင်။