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

farq များကိုဖြေရှင်းရန် PartPath ကိုခွဲခြမ်းစိတ်ဖြာရန်ပျက်ကွက်သည့်အခါအဖြေများပြပါ

gitbox 2025-05-29

PHP တွင်မှန်မှန်ကန်ကန်လမ်းကြောင်းကိုဖိုင် (သို့) လမ်းညွှန်သို့ပြန်ပို့ရန် realpath () function ကိုအသုံးပြုသည်။ ၎င်းသည်သင်္ကေတ လမ်းကြောင်း များ , သို့သော်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ဖြန့်ကျက်မှုတွင်ကျွန်ုပ်တို့သည်တစ်ခါတစ်ရံ အစာ ရှောင်ပြန်လာသည့်အ စာရှောင်ခြင်းပြ problem နာကိုကျွန်ုပ်တို့တွေ့ရသည်။ အောက်တွင်ကျွန်ုပ်တို့သည်ဤဖြစ်စဉ်နောက်ကွယ်ရှိဘုံအကြောင်းပြချက်များနှင့်သက်ဆိုင်ရာစုံစမ်းစစ်ဆေးမှုနှင့်ဖြေရှင်းနည်းများကိုဆွေးနွေးပါမည်။

1 ။ လမ်းကြောင်းမတည်ရှိပါသို့မဟုတ်ခွင့်ပြုချက်မလုံလောက်ပါ

realath () ၏ရဝုဏ်သည်လမ်းကြောင်းတည်ရှိရမည်ဖြစ်သည်။ အကယ်. လမ်းကြောင်းမတည်ရှိပါက function သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။

Troubleshooting နည်းလမ်း:

  • file_exists () သို့မဟုတ် is_dir () is_dir () ကို သုံးပါ။

  • သင့်တွင်လမ်းခရီးတွင်ခွင့်ပြုချက်အလုံအလောက်ရှိမသင့်ကိုစစ်ဆေးပါ။

 $path = '/var/www/project/uploads';
if (!file_exists($path)) {
    echo "လမ်းကြောင်းမတည်ရှိပါဘူး";
} else {
    echo realpath($path);
}

2 ။ အဆိုပါဆွေမျိုးလမ်းကြောင်းသည်လက်ရှိအလုပ်လုပ် directory အပေါ်အခြေခံသည်မဟုတ်

PHP စကားပြန်သည်ဆွေမျိုးလမ်းကြောင်းကိုခွဲခြမ်းစိတ်ဖြာသောအခါ၎င်းသည်လက်ရှိအလုပ်လုပ်သောလမ်းညွှန်ပေါ်တွင်အခြေခံသည်။ လက်ရှိအလုပ်လုပ်သော directory ကို GetCwd မှတဆင့်ကြည့်ရှုနိုင်သည်။ အကယ်. သင်၏ဆွေမျိုးလမ်းကြောင်းသည်ဤလမ်းညွှန်ပေါ်တွင်မမူတည်ပါက,

ဖြေရှင်းချက် -

  • အကြွင်းမဲ့လမ်းခရီးများကိုအသုံးပြုရန်ကြိုးစားပါ။

  • အကယ်. သင်သည်ဆွေမျိုးလမ်းကြောင်းကိုအသုံးပြုရမည်ဆိုပါက GetCwd () ကို အသုံးပြု. လက်ရှိအလုပ်လုပ်နေသောလမ်းညွှန်ကိုအတည်ပြုရန်နှင့်လိုအပ်ပါကပြုပြင်ရန် chdir () ကို သုံးနိုင်သည်။

 chdir('/var/www/project');
echo realpath('uploads'); // ထုတ်လုပ်ခြင်း:/var/www/project/uploads

3 ။ သင်္ကေတ links များပါ 0 င်သည်။ သို့သော်ပစ်မှတ်မရှိပါ

သင်္ကေတ link ၏တည်ရှိမှုသည်၎င်း၏ရည်မှန်းချက်တည်ရှိသည်ဟုမဆိုလိုပါ။ သင်္ကေတ link မှညွှန်ပြသောလမ်းကြောင်းသည်မတည်ရှိပါက အပ ape ိပက်ခ () သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။

Troubleshooting နည်းလမ်း:

  • သင်္ကေတ link pointer ကိုကြည့်ရှုရန် shell_exec ('ls -l') ကို သုံးပါ။

  • Link ပစ်မှတ်သည်အမှန်တကယ်တည်ရှိသည်ကိုအတည်ပြုပါ။

 $link = '/var/www/project/current';
echo is_link($link) ? readlink($link) : 'သင်္ကေတမဟုတ်သောလင့်ခ်များ';

4 ။ System ကန့်သတ်ချက်များ (Open_basedir ကဲ့သို့သော)

PHP configuration item open_basedir Open_basedir က PHP scripts ကိုရယူနိုင်သည့်ဖိုင်လမ်းကြောင်းကိုကန့်သတ်လိမ့်မည်။ သူတို့တည်ရှိရင်တောင်ကန့်သတ်ချက်ထက်ကျော်လွန်သွားတဲ့လမ်းကြောင်းတွေကိုသူတို့တည်ရှိရင်တောင်လက်လှမ်းမမီနိုင်ပါ

Troubleshooting နည်းလမ်း:

  • php.ini သို့မဟုတ် .htaccess တွင် open_basedir ချိန်ညှိချက်များကိုစစ်ဆေးပါ။

  • ini_get ('open_basedir' ကို သုံး. Runtime တွင်အတည်ပြုနိုင်သည်။

 echo ini_get('open_basedir');

ဖြေရှင်းချက် -

  • PHP configuration ကိုပြုပြင်မွမ်းမံခြင်းနှင့် Open_basedir မှဝင်ရောက်ရန်လမ်းကြောင်းကိုထည့်ပါ။

  • လုံခြုံရေးမော်ဒယ်လ်ခွင့်ပြုပါက Open_basedir မူဝါဒကိုမသုံးပါနှင့်။

5 ။ အထူးအက္ခရာများသို့မဟုတ်လမ်းကြောင်းအတွက် encoding အမှားအယွင်းများ

အကယ် . လမ်းကြောင်းသည်အထူးအက္ခရာများပါ 0 င်ပါက (နေရာများ,

Troubleshooting နည်းလမ်း:

  • Path String encoding ကိုအတည်ပြုပါ။ UTF-8 ကိုအကြံပြုသည်။

  • သံသယဖြစ်ဖွယ်ဇာတ်ကောင်များကို debug လုပ်ရန် urlocode () ကို သုံးပါ။

 $path = '/var/www/project/အချည်းနှီးသော directory';
echo realpath($path); // 若ထုတ်လုပ်ခြင်းfalse,ကျေးဇူးပြုပြီးဇာတ်ကောင် set ပြ problem နာကိုစစ်ဆေးပါ

လက်တွေ့စုံစမ်းစစ်ဆေးမှုအတွက်သိကောင်းစရာများ

အမူအအပ untather fail () ပျက်ကွက်မှုအတွက်ယူမင်းစားရရန် debugging function ကိုတည်ဆောက်ရန်ကောင်းသောအလေ့အကျင့်တစ်ခုဖြစ်သည်။

 function debugRealpath($path) {
    if (!file_exists($path)) {
        echo "လမ်းကြောင်းမတည်ရှိပါဘူး: {$path}\n";
        return;
    }
    $real = realpath($path);
    if ($real === false) {
        echo "realpathခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ: {$path}\n";
        echo "လက်ရှိအလုပ်လုပ်လမ်းညွှန်: " . getcwd() . "\n";
        echo "open_basedirကန့်သတ်: " . ini_get('open_basedir') . "\n";
    } else {
        echo "အစစ်အမှန်လမ်းကြောင်း: {$real}\n";
    }
}

debugRealpath('/var/www/gitbox.net/data');

ကောက်ချက်

အများအားဖြင့် allath () တည်ငြိမ်သော်လည်းပြ problems နာများပေါ်ပေါက်လာသည်နှင့်အမျှပတ်ဝန်းကျင် configuration သို့မဟုတ်လမ်းကြောင်းယုတ္တိဗေဒနှင့်ဆက်စပ်သောဖြစ်ကြသည်။ အထက်ပါနည်းလမ်းများမှတစ်ဆင့်တည်ရှိမှု, ခွင့်ပြုချက်များ, လမ်းကြောင်းပြ problems နာများကိုကိုင်တွယ်သောအခါ, operating ပတ်ဝန်းကျင်နှင့်စပ်လျဉ်း။ sensitivity ကိုထိန်းသိမ်းရန်သေချာစွာထိန်းသိမ်းထားပါပြ the နာ၏အရင်းအမြစ်ကိုခြေရာခံရန်အချိန်မီမှတ်တမ်းများ