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

directory ခွင့်ပြုချက်စစ်ဆေးမှုမသွားနိုင်သည့် is_readable function ကိုကျွန်ုပ်ကြုံတွေ့ရသောအခါမည်သို့ဖြေရှင်းသင့်သနည်း။

gitbox 2025-09-12

directory ခွင့်ပြုချက်စစ်ဆေးမှုမသွားနိုင်သည့် is_readable function ကိုကျွန်ုပ်ကြုံတွေ့ရသောအခါမည်သို့ဖြေရှင်းသင့်သနည်း။

PHP Development တွင် developable တွင်ဖိုင် (သို့) လမ်းညွှန်ကိုဖတ်လို့မရလျှင် IS_READable function ကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ ဤလုပ်ဆောင်ချက်သည် boolean value ကိုပြန်ပို့သည်။ Real ဆိုသည်မှာ Readable ကိုဆိုလိုသည်။ မှားယွင်းသော နည်းလမ်းများသည်မဖတ်ရဟုဆိုလိုသည်။ Directory ခွင့်ပြုချက်စစ်ဆေးမှုကို is_readable ကို သုံးသောအခါ directory ခွင့်ပြုချက်စစ်ဆေးမှုကိုမဖြတ်နိုင်ကြောင်းသင်တွေ့ရှိပါက၎င်းသည်များသောအားဖြင့်ဖိုင်သို့မဟုတ်လမ်းညွှန်ခွင့်ပြုချက် settings နှင့်ပြ a နာတစ်ခုရှိသည်သို့မဟုတ်ပရိုဂရမ်၏လမ်းကြောင်းနှင့်ခွင့်ပြုချက်ကိုမလျော်ကန်စွာကိုင်တွယ်ဖြေရှင်းနိုင်သည်။

ဤဆောင်းပါးသည်ဖြစ်နိုင်ချေရှိသောအကြောင်းရင်းများကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာပြီးဤအခြေအနေအတွက်သက်ဆိုင်ရာအဖြေများပေးလိမ့်မည်။

1 ။ is_readable function ကိုအခြေခံအသုံးပြုခြင်း

ပထမ ဦး စွာ is_readable function ၏အခြေခံအသုံးပြုမှုကိုသုံးသပ်ကြည့်ကြစို့။

 <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'path/to/file_or_directory'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်များသို့မဟုတ်လမ်းညွှန်များကိုဖတ်နိုင်သည်"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်များသို့မဟုတ်လမ်းညွှန်များကိုဖတ်လို့မရပါဘူး"</span></span><span>;
}
</span></span>

လမ်းကြောင်းအားဖြင့်ညွှန်ပြသောဖိုင် (သို့) directions သည်ခွင့်ပြုချက်များကိုဖတ်ပြီးခွင့်ပြုချက်များကိုဖတ်ရှုလျှင် is_readable သည် မှန်ကန်သည် ။ အကယ်. မှားယွင်းသောအ ယူမှားပါကဖိုင် (သို့) လမ်းညွှန်သည်မဖတ်နိုင်ပါ။

2 ။ လမ်းညွှန်ခွင့်ပြုချက်ပြ issues နာများ

ကိစ္စရပ်အများစုတွင် directory သည်လမ်းညွှန်ချက်ကို မှန်ကန်စွာ ဖတ်ရှုပါက function သည် မှားယွင်းစွာ ပြန်ဆိုလျှင် function ကိုပြန်ပို့သည်။ ထို့ကြောင့်ပထမ ဦး စွာသင်လမ်းညွှန်၏ခွင့်ပြုချက် settings ကိုအတည်ပြုရန်လိုအပ်သည်။

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

  1. Directory Permissions များကိုစစ်ဆေးပါ။ LS -l command (linux or Mac system ပေါ်တွင်) directory ၏ခွင့်ပြုချက် settings ကိုစစ်ဆေးပါ။ လမ်းညွှန်သည်ခွင့်ပြုချက်များကိုဖတ်ရန်သေချာအောင်လုပ်ပါ (အနည်းဆုံး R-- ခွင့်ပြုချက်) ။

     <span><span><span class="hljs-built_in">ls</span></span><span> -ld /path/to/directory
    </span></span>
  2. Directory Permissions ကိုပြောင်းပါ။ အကယ်. သင်လမ်းညွှန်သည်မှန်ကန်သောခွင့်ပြုချက်မရှိပါကခွင့်ပြုချက်ကိုပြုပြင်ရန် Chmod Command ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်, ဖတ်ရန်ခွင့်ပြုချက်ကို directory သို့ထည့်ပါ။

     <span><span><span class="hljs-built_in">chmod</span></span><span> +r /path/to/directory
    </span></span>
  3. မိဘလမ်းညွှန်ခွင့်ပြုချက်ကိုစစ်ဆေးပါ - ပစ်မှတ်လမ်းညွှန်၏မိဘလမ်းညွှန်သည်ခွင့်ပြုချက်ကိုမဖတ်ပါက is_readable သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။ ထို့ကြောင့်မိဘလမ်းညွှန်တွင်မှန်ကန်သောခွင့်ပြုချက်များရှိကြောင်းအတည်ပြုပါ။

  4. Web Server အသုံးပြုသူခွင့်ပြုချက်ကိုအတည်ပြုပါ - PHP သည်များသောအားဖြင့် WWW-Data တွင် 0 က်ဘ်ဆာဗာအသုံးပြုသူ (Ubuntu System) ကဲ့သို့သော 0 က်ဘ်ဆိုက်ဆာဗာအသုံးပြုသူ၏ခွင့်ပြုချက်အရ run သည်။ ဤအသုံးပြုသူသည်လမ်းညွှန်ကိုဝင်ရောက်ရန်ခွင့်ပြုချက်ရှိကြောင်းသေချာပါစေ။

3 ။ လမ်းညွှန်ပြ problems နာများ

တစ်ခါတစ်ရံတွင်ခွင့်ပြုချက်ပြ issues နာများကြောင့် မဟုတ်ဘဲ directory သို့မဟုတ် file လုံးဝမတည်ရှိသောကြောင့်ဖြစ်သည် Target Path သည်တည်ရှိခြင်းရှိမရှိစစ်ဆေးရန် file_exists function ကိုသင်ပထမ ဦး ဆုံးအသုံးပြုနိုင်သည်။

 <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'path/to/file_or_directory'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်များသို့မဟုတ်လမ်းညွှန်များကိုဖတ်နိုင်သည်"</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်များသို့မဟုတ်လမ်းညွှန်များကိုဖတ်လို့မရပါဘူး"</span></span><span>;
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်သို့မဟုတ်လမ်းညွှန်မရှိပါ"</span></span><span>;
}
</span></span>

4 ။ လမ်းကြောင်းမှန်ကိုသေချာအောင်လုပ်ပါ

is_readable ကို သုံးတဲ့အခါလမ်းကြောင်းရဲ့မှန်ကန်မှုကအရေးကြီးတယ်။ အကယ်. လမ်းကြောင်းသည်အမှားအယွင်းများပါ 0 င်ပါကဖိုင်သို့မဟုတ်လမ်းညွှန်၏ဖတ်နိုင်မှုကိုမှန်ကန်စွာဆုံးဖြတ်ရန်မဖြစ်နိုင်ပါ။

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

  • ပကတိလမ်းကြောင်းများကိုသုံးပါ။ အထူးသဖြင့်ရှုပ်ထွေးသော directory အဆောက်အအုံများတွင်ဆွေမျိုးလမ်းကြောင်းများကိုအသုံးပြုခြင်းကိုရှောင်ကြဉ်ပါ။ အကြွင်းမဲ့လမ်းစဉ်များကိုအသုံးပြုခြင်းသည်လမ်းကြောင်းပေါ်မှအမှားအယွင်းများကိုလျော့နည်းစေသည်။

     <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'DOCUMENT_ROOT'</span></span><span>] . </span><span><span class="hljs-string">'/path/to/directory'</span></span><span>;
    </span></span>
  • Debug Path Pather: ECHO (သို့) var_dump ကို သုံး. လမ်းကြောင်းမှန်ကိုမှန်ကန်မှုရှိမရှိအတည်ပြုရန်လမ်းကြောင်းကိုသုံးနိုင်သည်။

     <span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>));
    </span></span>

5 ။ ထိုကဲ့သို့သော Selinux သို့မဟုတ် abarmor ကဲ့သို့သောလုံခြုံရေး module များ

အချို့သော Linux System များတွင် Selinux သို့မဟုတ် ApparGormor ကဲ့သို့သောလုံခြုံရေးဆိုင်ရာအချက်အလက်များသည် PHP လုပ်ငန်းခွင်များမှအချို့သောဖိုင်များနှင့်လမ်းညွှန်များကိုလက်လှမ်းမီနိုင်သော်လည်းဤလမ်းညွှန်များအတွက်ဖိုင်ခွင့်ပြုချက်သည်မှန်ကန်ပုံရသော်လည်း။ ဤရွေ့ကား module များသည် PHP scripts များကိုအချို့သောစစ်ဆင်ရေး များ ပြုလုပ်ရန်တားဆီးနိုင်သည်

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

  • Selinux သို့မဟုတ် Apparmor Logs များကိုစစ်ဆေးပါ - သက်ဆိုင်ရာမှတ်တမ်းဖိုင်များကိုစစ်ဆေးပြီးဤလုံခြုံရေး modules ဖိုင်ကိုမဖတ်ရန်တားဆီးမနေပါ။

  • လုံခြုံရေးမူဝါဒကိုညှိပါ - Selinux သို့မဟုတ် AppSmor Security Policy ကိုချိန်ညှိပါ။

6 ။ File System Mount ပြ problem နာ

အကယ်. သင်၏ဖိုင်စနစ်သို့မဟုတ်လမ်းညွှန်ကို NFS နှင့် SMB ကဲ့သို့သောကွန်ယက်ဖိုင်စနစ်များမှတစ်ဆင့်တပ်ဆင်ထားပါကဖိုင်၏ခွင့်ပြုချက်ကို Network file system settings များဖြင့်ထိခိုက်နိုင်သည်။ is_readable function သည်ဤဖိုင်စနစ်များရှိလမ်းညွှန်ခွင့်ပြုချက်ကိုမှန်ကန်စွာစစ်ဆေးရန်မသင့်တော်ပါ။

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

  1. Mount Options ကို Check လုပ်ပါ။ ဖိုင်စနစ်၏ Mount Options သည် PHP လုပ်ငန်းများကိုသက်ဆိုင်ရာလမ်းညွှန်များကိုရယူရန်ခွင့်ပြုပါ။ ဥပမာ NFS တပ်ဆင်ထားသည့်အခါ NO_ROOT_SQUAsh option ကိုမဖွင့်ပါ။

  2. local file system ကို အသုံးပြု. - Network file system ပေါ်တွင်အရေးကြီးသော PHP scripts များနှင့်ဖိုင်များကိုနေရာချထားခြင်းမပြုရန်ကြိုးစားပါ, local file system ကိုအသုံးပြုရန်ကြိုးစားပါ။

7 ။ PHP ရဲ့ Open_basedir ကန့်သတ်ချက်

PHP configuration enformations အချို့တွင် Open_basedir ကန့်သတ်ချက်များသည် PHP scripts ၏ဖိုင်အမျိုးအစားကိုအကျိုးသက်ရောက်နိုင်သည်။ အကယ်. Open_basedir ကို PHP ၏ configuration files ( php.ini ကဲ့သို့သော) တွင်ပါ 0 င ပါက PHP scripts သည်သတ်မှတ်ထားသောလမ်းညွှန်တွင်သာအသုံးပြုနိုင်သည်။

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

  1. Open_basedir ချိန်ညှိချက်များကို Check: Php.ini ဖိုင်ရှိ Open_basedi ဖိုင်တွင် Open_basedi ဖိုင်တွင် check လုပ်ခြင်းကိုစစ်ဆေးပါ။

  2. Adject_basedir : လိုအပ်ပါက open_basedir setting ကို ချိန်ညှိပါ,

 <span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'open_basedir'</span></span><span>, </span><span><span class="hljs-string">'/path/to/your/directory'</span></span><span>);
</span></span>

အကျဉ်းချုပ်

Directory ခွင့်ပြုချက်စစ်ဆေးခြင်းကို မအောင်မြင် နိုင်သည့်အခါကျွန်ုပ်တို့သည်များသောအားဖြင့်ပြ troubl နာများကိုဖြေရှင်းရန်အများအားဖြင့်စတင်ရန်လိုအပ်သည်။ ပထမ ဦး စွာလမ်းညွှန်သည်တည်ရှိပြီးမှန်ကန်သောခွင့်ပြုချက်ရှိကြောင်းသေချာပါစေ။ ဒုတိယအချက်အနေဖြင့် PHP script ၏လည်ပတ်မှုပတ်ဝန်းကျင်ကိုဖွင့်ပါ ပြည့်စုံစွာ debugging မှတဆင့်, ပြ problems နာများကိုပိုမိုမြန်ဆန်စွာတွေ့ရှိနိုင်သည်။