PHP တွင်မှန်မှန်ကန်ကန်လမ်းကြောင်းကိုဖိုင် (သို့) လမ်းညွှန်သို့ပြန်ပို့ရန် realpath () function ကိုအသုံးပြုသည်။ ၎င်းသည်သင်္ကေတ လမ်းကြောင်း များ , သို့သော်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ဖြန့်ကျက်မှုတွင်ကျွန်ုပ်တို့သည်တစ်ခါတစ်ရံ အစာ ရှောင်ပြန်လာသည့်အ စာရှောင်ခြင်းပြ problem နာကိုကျွန်ုပ်တို့တွေ့ရသည်။ အောက်တွင်ကျွန်ုပ်တို့သည်ဤဖြစ်စဉ်နောက်ကွယ်ရှိဘုံအကြောင်းပြချက်များနှင့်သက်ဆိုင်ရာစုံစမ်းစစ်ဆေးမှုနှင့်ဖြေရှင်းနည်းများကိုဆွေးနွေးပါမည်။
realath () ၏ရဝုဏ်သည်လမ်းကြောင်းတည်ရှိရမည်ဖြစ်သည်။ အကယ်. လမ်းကြောင်းမတည်ရှိပါက function သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။
Troubleshooting နည်းလမ်း:
file_exists () သို့မဟုတ် is_dir () is_dir () ကို သုံးပါ။
သင့်တွင်လမ်းခရီးတွင်ခွင့်ပြုချက်အလုံအလောက်ရှိမသင့်ကိုစစ်ဆေးပါ။
$path = '/var/www/project/uploads';
if (!file_exists($path)) {
echo "လမ်းကြောင်းမတည်ရှိပါဘူး";
} else {
echo realpath($path);
}
PHP စကားပြန်သည်ဆွေမျိုးလမ်းကြောင်းကိုခွဲခြမ်းစိတ်ဖြာသောအခါ၎င်းသည်လက်ရှိအလုပ်လုပ်သောလမ်းညွှန်ပေါ်တွင်အခြေခံသည်။ လက်ရှိအလုပ်လုပ်သော directory ကို GetCwd မှတဆင့်ကြည့်ရှုနိုင်သည်။ အကယ်. သင်၏ဆွေမျိုးလမ်းကြောင်းသည်ဤလမ်းညွှန်ပေါ်တွင်မမူတည်ပါက,
ဖြေရှင်းချက် -
အကြွင်းမဲ့လမ်းခရီးများကိုအသုံးပြုရန်ကြိုးစားပါ။
အကယ်. သင်သည်ဆွေမျိုးလမ်းကြောင်းကိုအသုံးပြုရမည်ဆိုပါက GetCwd () ကို အသုံးပြု. လက်ရှိအလုပ်လုပ်နေသောလမ်းညွှန်ကိုအတည်ပြုရန်နှင့်လိုအပ်ပါကပြုပြင်ရန် chdir () ကို သုံးနိုင်သည်။
chdir('/var/www/project');
echo realpath('uploads'); // ထုတ်လုပ်ခြင်း:/var/www/project/uploads
သင်္ကေတ link ၏တည်ရှိမှုသည်၎င်း၏ရည်မှန်းချက်တည်ရှိသည်ဟုမဆိုလိုပါ။ သင်္ကေတ link မှညွှန်ပြသောလမ်းကြောင်းသည်မတည်ရှိပါက အပ ape ိပက်ခ () သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။
Troubleshooting နည်းလမ်း:
သင်္ကေတ link pointer ကိုကြည့်ရှုရန် shell_exec ('ls -l') ကို သုံးပါ။
Link ပစ်မှတ်သည်အမှန်တကယ်တည်ရှိသည်ကိုအတည်ပြုပါ။
$link = '/var/www/project/current';
echo is_link($link) ? readlink($link) : 'သင်္ကေတမဟုတ်သောလင့်ခ်များ';
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 မူဝါဒကိုမသုံးပါနှင့်။
အကယ် . လမ်းကြောင်းသည်အထူးအက္ခရာများပါ 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 နာ၏အရင်းအမြစ်ကိုခြေရာခံရန်အချိန်မီမှတ်တမ်းများ