လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ဖိုင် () function ကိုအသုံးပြုသောအခါဘုံဖိုင်ခွင့်ပြုချက်ပြ Proble နာများကဘာတွေလဲ။ ဘယ်လိုမြန်မြန်ဖြေရှင်းနည်း?

PHP ဖိုင် () function ကိုအသုံးပြုသောအခါဘုံဖိုင်ခွင့်ပြုချက်ပြ Proble နာများကဘာတွေလဲ။ ဘယ်လိုမြန်မြန်ဖြေရှင်းနည်း?

gitbox 2025-08-17

PHP ဖိုင် () function ကိုအသုံးပြုသောအခါဘုံဖိုင်ခွင့်ပြုချက်ပြ Proble နာများကဘာတွေလဲ။ ဘယ်လိုမြန်မြန်ဖြေရှင်းနည်း?

PHP ပရိုဂရမ်တွင် ဖိုင် () function သည်အလွန်လက်တွေ့လုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်ဖိုင်၏လိုင်းတစ်ခုစီကိုပရိုဂရမ်တွင်နောက်ထပ်ပြုပြင်မွမ်းမံရန်လွယ်ကူချောမွေ့စေသည့် array ဒြပ်စင်တစ်ခုစီကိုဖတ်နိုင်သည်။ သို့သော်ဤလုပ်ဆောင်မှုကိုလွယ်ကူစွာလုပ်ဆောင်နိုင်သော်လည်းအသုံးပြုစဉ်အတွင်းဖိုင်ခွင့်ပြုချက်ပြ problems နာအချို့ကိုမကြာခဏတွေ့ဆုံလေ့ရှိပြီးဖိုင်အကြောင်းအရာကိုမှန်ကန်စွာဖတ်ရန်မဖြစ်နိုင်ပါ။ ဤဆောင်းပါးသည် ဖိုင် () function ကိုအသုံးပြုသောအခါဘုံဖိုင်ခွင့်ပြုချက်ပြ issues နာများကိုအသေးစိတ်ဆွေးနွေးပါမည်။

1 ။ ဖိုင်ကိုဖတ်လို့မရဘူး

အသုံးအများဆုံးခွင့်ပြုချက်ပြ problems နာများထဲမှတစ်ခုမှာ PHP scripts များမှဖိုင်များကိုမဖတ်နိုင်သည့်အတွက်ဖြစ်သည်။ ၎င်းသည်များသောအားဖြင့်ဖိုင်ကိုဖတ်ရန်ခွင့်ပြုချက်မလုံလောက်ခြင်းကြောင့်ဖြစ်သည်။ Linux သို့မဟုတ် Unix ကဲ့သို့သောစနစ်များတွင်ဖိုင်ခွင့်ပြုချက်များကို chmod command မှတဆင့်စီမံခန့်ခွဲနိုင်သည်။

ဘုံသရုပ်ဖော်ပုံများ:

  • PHP အမှား သတိပေးချက် - ဖိုင် () [function.file] - စမ်းချောင်းကိုဖွင့်ရန်ပျက်ကွက်ခြင်း - ထိုကဲ့သို့သောဖိုင်သို့မဟုတ်လမ်းညွှန်မရှိပါ

  • ဖိုင်တည်ရှိသော်လည်း PHP သည်၎င်း၏ contents များကိုမဖတ်နိုင်သေးပါ။

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

  1. ဖိုင်တည်ရှိပြီးလမ်းကြောင်းမှန်ပေါ်သေချာအောင်လုပ်ပါ။

  2. ဖိုင်၏ဖတ်ခွင့်ခွင့်ပြုချက်များကိုစစ်ဆေးပြီး PHP သို့ဖတ်ရန်ဖိုင်၏ခွင့်ပြုချက်များကိုပြုပြင်ရန် chmod ကို သုံးပါ။ အောက်ပါ command များကိုသုံးနိုင်သည် -

     <span><span><span class="hljs-built_in">chmod</span></span><span> 644 /path/to/your/file
    </span></span>

    ၎င်းသည်ခွင့်ပြုချက်များကိုဖတ်ရန်နှင့်ရေးရန်ခွင့်ပြုချက်ကိုဖတ်ရန်နှင့်ရေးရန်ခွင့်ပြုချက်ကိုပေးလိမ့်မည်။

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

အချို့ဖြစ်ရပ်များတွင်ဖိုင်တွင်နေထိုင်သောလမ်းညွှန်သည်ခွင့်ပြုချက်အလုံအလောက်မရှိ, ဖိုင်ကိုလက်လှမ်းမမှီနိုင်ပါ။ ဖိုင်ကိုယ်တိုင်ကမှန်ကန်သောခွင့်ပြုချက်များရှိနေသော်လည်း PHP သည် directory ခွင့်ပြုချက်ပြ issues နာများကြောင့်ဖိုင်ကိုဖတ်ရန်ပျက်ကွက်နေ ဦး မည်ဖြစ်သည်။

ဘုံသရုပ်ဖော်ပုံများ:

  • အမှား သတိပေးချက် - ဖိုင် () [function.file] - Stream ကိုဖွင့်ရန်ပျက်ကွက်: ခွင့်ပြုချက်ငြင်းပယ်ခဲ့သည်

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

  1. PHP သည်လမ်းညွှန်သို့ဝင်ရောက်ရန်သေချာပါစေ။ အောက်ဖော်ပြပါ command ကို သုံး. directory သို့သင့်လျော်သောဖတ်ခွင့်ခွင့်ပြုချက်ကိုသင်ထည့်နိုင်သည်။

     <span><span><span class="hljs-built_in">chmod</span></span><span> 755 /path/to/directory
    </span></span>

    ၎င်းသည်စာဖတ်ခြင်း, ရေးခြင်းနှင့်ခွင့်ပြုချက်ဖြင့်လမ်းညွှန်ပိုင်ရှင်များနှင့်ခွင့်ပြုချက်ကိုဖတ်ရန်နှင့် execute လုပ်ထားသောအခြားအသုံးပြုသူများကိုပေးလိမ့်မည်။

  2. PHP ၏အသုံးပြုသူများကိုအသုံးပြုနေသောအသုံးပြုသူ (ဥပမာ www-data သို့မဟုတ် apache ) ကိုအသုံးပြုရန်ခွင့်ပြုချက်ရှိမရှိကိုလည်းသင်စစ်ဆေးနိုင်သည်။ အကယ်. သင်မသေချာပါက directory ၏ပိုင်ရှင်နှင့်ခွင့်ပြုချက်များကိုအောက်ပါ command မှတဆင့်ကြည့်ရှုနိုင်သည်။

     <span><span><span class="hljs-built_in">ls</span></span><span> -l /path/to/directory
    </span></span>

3 ။ Selinux သို့မဟုတ် apparmor ကန့်သတ်ချက်များ

Selinux သို့မဟုတ် ApparMormor ကဲ့သို့သောလုံခြုံရေးဆိုင်ရာ module များအသုံးပြုခြင်းကဲ့သို့သော Linux ဖြန့်ဖြူးခြင်းများတွင်ဖိုင်တွဲ၏ခွင့်ပြုချက်သည် OK ကိုကြည့်ရှုနေသည့်တိုင်ဖိုင်ကိုကြည့်ရှုနိုင်ပြီးဖိုင်ကို 0 င်ရောက်နိုင်ဆဲဖြစ်သည်။

ဘုံသရုပ်ဖော်ပုံများ:

  • ချို့ယွင်းချက် သတိပေးချက် - ဖိုင် () [function.file] - Stream ကိုဖွင့်ရန်မအောင်မြင်ပါ။ ခွင့်ပြုချက်ကိုငြင်းပယ်ခြင်း ,

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

  1. Selinux ကိုခေတ္တပိတ်ထားရန် Selinux ကိုခေတ္တပိတ်ထားပါ။

     <span><span>setenforce 0
    </span></span>

    Selinux ကို disable လုပ်ပြီးနောက်ပြ problem နာကိုဖြေရှင်းနိုင်ပါက PHP ကိုဖိုင်ကိုရယူရန် Selinux မူဝါဒကိုညှိရန်စဉ်းစားပါ။ Selinux ကိုအမြဲတမ်းပိတ်ခြင်းသည်စနစ်လုံခြုံရေးကိုလျော့နည်းစေသောကြောင့်အကြံပြုထားသောအလေ့အကျင့်မဟုတ်ပါ။

  2. Selinux အမှားသတင်းအချက်အလက်များကိုကြည့်ရှုရန် စာရင်းစစ် ကိရိယာကို သုံး. Prompts နှင့်အညီစည်းကမ်းချက်များကိုပြုပြင်ရန်စည်းမျဉ်းများကိုပြင်ဆင်ရန်

     <span><span>audit2allow -w -a
    </span></span>

4 ။ PHP Configuration ပြ issues နာများ

တစ်ခါတစ်ရံ PHP configuration ကိုယ်တိုင်ကဖိုင်အမျိုးအစားကိုကန့်သတ်နိုင်သည်။ ဥပမာအားဖြင့်, open_basedir configuration သည် PHP ကိုသတ်သတ်မှတ်မှတ်လမ်းညွှန်များကိုသာ 0 င်ရောက်ခြင်းကိုသာကန့်သတ်ထားလိမ့်မည်။

ဘုံသရုပ်ဖော်ပုံများ:

  • အမှားတစ်ခုသတင်းပို့သည်။ သတိပေးချက် - ဖိုင် () [) [function.file] - Stream ဖွင့်ရန်ပျက်ကွက်ခြင်း - စစ်ဆင်ရေးကိုခွင့်မပြုပါ

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

  1. PHP.INI Configuration ဖိုင်တွင် Open_basedir ချိန်ညှိချက်များကိုစစ်ဆေးပါ။ ဖိုင်တည်ရှိရာနေရာကိုသေချာအောင်လုပ်ပါ။ လက်ရှိ Open_basedir ချိန်ညှိချက်များကိုအောက်ပါ command မှတဆင့်ကြည့်ရှုနိုင်သည်။

     <span><span><span class="hljs-title function_ invoke__">phpinfo</span></span><span>();
    </span></span>
  2. လိုအပ်ပါက php php အားပိုမိုကောင်းမွန်သောလမ်းညွှန်များကိုခွင့်ပြုရန် Open_basedir ၏တန်ဖိုးကိုယာယီပြင်ဆင်နိုင်သည်။

     <span><span><span class="hljs-attr">open_basedir</span></span><span> = /path/to/allowed/directory
    </span></span>

    သို့မဟုတ် php code တွင် dynamically ပြုပြင်ရန် ini_set () ကို သုံးပါ။

     <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/allowed/directory'</span></span><span>);
    </span></span>

5 ။ ဖိုင်သော့ခတ်ပြ problem နာ

အကယ်. ဖိုင်ကိုအခြားလုပ်ငန်းစဉ်တစ်ခုဖြင့်သော့ခတ်ထားလျှင် PHP သည်ဖိုင်ကိုမဖတ်နိုင်ပါ။ အထူးသဖြင့်ဖိုင်တစ်ခုသို့မဟုတ် scripts မျိုးစုံကိုတစ်ချိန်တည်းတွင်ဖိုင်တစ်ခု 0 င်ရောက်သောအခါဖိုင်ပေါင်းစုံသို့မဟုတ် multi-threaded ပတ်ဝန်းကျင်တွင်ပြုလုပ်လေ့ရှိသည်။

ဘုံသရုပ်ဖော်ပုံများ:

  • PHP သည်ဖိုင်ကိုမဖတ်နိုင်ပါ, သို့မဟုတ် contents များသည်မပြည့်စုံပါ။

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

  1. အခြားမည်သည့်ဖြစ်စဉ်ကိုမျှဖိုင်ကိုမကြည့်ပါနှင့်။ ဖြစ်နိုင်လျှင်တစ်ချိန်တည်းတွင်တူညီသောဖိုင်ကို 0 င်ရောက်ခြင်းလုပ်ငန်းစဉ်များသို့မဟုတ် scripts မျိုးစုံကိုရှောင်ပါ။

  2. အကယ်. ဖိုင်ကိုတစ်ချိန်တည်းတွင်လုပ်ငန်းစဉ်မျိုးစုံဖြင့်ကြည့်ရှုနိုင်ပါကဖိုင်သော့ခတ်ကိရိယာကို အသုံးပြု. စဉ်းစားပါ။ PHP သည် function () function ကိုထောက်ပံ့ပေးသည်။ ၎င်းသည်၎င်းတို့ကိုမသွားမီဖိုင်များကိုသော့ခတ်နိုင်ပြီးဖိုင်များကိုအခြားလုပ်ငန်းစဉ်များက 0 င်ရောက်စွက်ဖက်ခြင်းမပြုနိုင်ပါ။

6 ။ ဖိုင်စနစ်ပြ issues နာများ

နောက်ဆုံးတွင်ဖိုင်စနစ်နှင့်ပြ problems နာများရှိပါက (ထိုကဲ့သို့သောဖိုင်စနစ်၏အကျင့်ပျက်ခြစားမှုစသဖြင့်) တွင် PHP သည်ဖိုင်ကိုမဖတ်နိုင်ပါ။

ဘုံသရုပ်ဖော်ပုံများ:

  • အမှား သတိပေးချက် - ဖိုင် () [) [function.file] - Stream ကိုဖွင့်ရန်မအောင်မြင်ပါ

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

  1. Disk နေရာသည်လုံလောက်မှုရှိမရှိစစ်ဆေးပါ။ ကြည့်ရှုရန်အောက်ပါ command ကိုသုံးပါ။

     <span><span><span class="hljs-built_in">df</span></span><span> -h
    </span></span>
  2. အကယ်. disk space သည်အပြည့်အဝ, အသုံးမကျသောဖိုင်များသို့မဟုတ် disk space ကိုတိုးချဲ့ပါက။

  3. ဖိုင်စနစ်ကိုဖတ်ရန်တစ်ခုတည်းသော mode တွင်မတပ်ဆင်ထားကြောင်းအတည်ပြုရန်, ၎င်းကိုအောက်ပါ command မှတဆင့်ကြည့်ရှုနိုင်သည်။

     <span><span>mount | grep </span><span><span class="hljs-string">'/path/to/file'</span></span><span>
    </span></span>

နိဂုံးချုပ်အားဖြင့်

PHP ၏ ဖိုင် () function ကိုအသုံးပြုသောအခါခွင့်ပြုချက်ပြ issues နာများသည်ဖိုင်များကိုမဖတ်နိုင်သောအဘယ်ကြောင့်ရသည့်အကြောင်းရင်းတစ်ခုဖြစ်သည်။ ဤပြ issues နာများကိုများသောအားဖြင့်ဖိုင်နှင့် directory perments များ, Selinux သို့မဟုတ် ApparMor Configuration, PPP configuration နှင့် file locking လုပ်ခြင်းဖြင့်ဖြေရှင်းခြင်းဖြင့်ဖြေရှင်းလေ့ရှိသည်။ PHP scripts သည်လုံလောက်သော 0 င်ရောက်နိုင်ခြင်းနှင့်ဖိုင်စနစ်နှင့်ပြ problems နာမရှိပါ။ ဖိုင်စနစ်နှင့်ပြ problems နာမရှိပါ။