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

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

gitbox 2025-08-28

PHP တွင် Disk_total_space () function ကို function ကိုဖိုင်စနစ်သို့မဟုတ် disk partition ကိုရရှိရန်အသုံးပြုနိုင်သည်။ ဆာဗာစောင့်ကြည့်လေ့လာခြင်း, Spatial သတိပေးခြင်းနှင့်အခြားလုပ်ဆောင်မှုများကိုလုပ်ဆောင်သောအခါဤလုပ်ဆောင်မှုသည်အလွန်အသုံးဝင်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင်အချို့သော developer အချို့ကဤပြ issue နာကိုကြုံတွေ့ရလိမ့်မည်။ ကုဒ်သည် syntax အမှားများမရှိပါ။ သို့သော် disk_total_space () ကို ခေါ်ဆိုခြင်း,

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

1 ။ ပြ problem နာဖြစ်ရပ်ဆန်း

များသောအားဖြင့်သင်သည်အောက်ပါကုဒ်ကိုရေးသားခဲ့ဖူးသည်။

 <span><span><span class="hljs-variable">$disk</span></span><span> = </span><span><span class="hljs-string">'/var/www/'</span></span><span>;
</span><span><span class="hljs-variable">$space</span></span><span> = </span><span><span class="hljs-title function_ invoke__">disk_total_space</span></span><span>(</span><span><span class="hljs-variable">$disk</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$space</span></span><span>);
</span></span>

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

 <span><span>Warning: </span><span><span class="hljs-built_in">disk_total_space</span></span><span>(): open_basedir restriction in effect. </span><span><span class="hljs-built_in">File</span></span><span>(/var/www/) is not within the allowed </span><span><span class="hljs-built_in">path</span></span><span>(s): ...
</span></span>

သို့မဟုတ်:

 <span><span><span class="hljs-built_in">Warning</span></span><span>: disk_total_space(): failed </span><span><span class="hljs-keyword">to</span></span><span> </span><span><span class="hljs-keyword">open</span></span><span> dir: Permission denied
</span></span>

2 ။ ဖြစ်နိုင်သောအကြောင်းရင်းများနှင့်ပြ esh နာဖြေရှင်းခြင်းနည်းလမ်းများ

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

ဒါကအခြေခံအကျဆုံးမေးခွန်းပါ။ Disk_total_space () ရှိပြီးသား, ခိုင်လုံသောလမ်းညွှန်လမ်းကြောင်းလိုအပ်သည်။ သင်ဖြတ်သန်းသွားသောလမ်းကြောင်းမတည်ရှိပါကလုပ်ဆောင်ချက်သည်သဘာဝကျကျအလုပ်မလုပ်ပါ။

Troubleshooting နည်းလမ်း:

  • is_dir () သို့မဟုတ် file_exists () file_exists () () () »လမ်းကြောင်းတည်ရှိမရှိ,

  • အထူးသဖြင့်ဖြစ်ရပ်မှန် sensitivity ကိုသတိထားရန် Linux တွင်လမ်းကြောင်းမှန်ပေါ်စာလုံးပေါင်းကြောင်းအတည်ပြုပါ။

 <span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-variable">$disk</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အဆိုပါလမ်းညွှန်မတည်ရှိပါဘူး:<span class="hljs-subst">$disk</span></span></span><span>";
}
</span></span>

2 ။ ခွင့်ပြုချက်မလုံလောက်မှုသည်လမ်းကြောင်းကို 0 င်ရောက်ရန်မဖြစ်နိုင်ပါ

PHP ကို ​​0 က်ဘ ်ဆာဗာအောက်တွင် PHP ကိုအသုံးပြုသူများ (ဥပမာ - apache or nginx ကဲ့သို့သော php ) ကိုအသုံးပြုသူများကိုအသုံးပြုသူများသည်သင်ပေးသည့်လမ်းညွှန်ကိုရယူရန်ခွင့်ပြုချက်မရှိပါ။

Troubleshooting နည်းလမ်း:

  • ဤလမ်းကြောင်းအတွက်ခွင့်ပြုချက်များကိုကြည့်ရှုရန် LS -ld / Path / DIR သို့ LS -ld / Path / DIR ကို သုံးပါ။

  • Whoami နှင့် Ps Aux ကို သုံးပါ PHP ၏အသုံးပြုသူများကိုအတည်ပြုရန် GREP PHP သည် PHP ကိုအတည်ပြုရန်,

  • မည်သည့်ခြားနားချက်ရှိမဆိုစစ်ဆေးရန် CLI mode ကိုသုံးပါ။ CLI mode သည်လက်ရှိ login အသုံးပြုသူခွင့်ပြုချက်ကိုအသုံးပြုသည်။

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

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

  • သင့်တော်သောခွင့်ပြုချက်များပေးရန် Chown သို့မဟုတ် Chmod ကို သုံးပါ (လုံခြုံရေးလိုအပ်ချက်များအဖြစ်ချိန်ညှိပါ),

  • PHP တွင် 0 င်ရောက်ခွင့်ပြုသည့်နေရာ၌ပစ်မှတ်လမ်းကြောင်းကိုထားပါ။

 <span><span>sudo </span><span><span class="hljs-built_in">chmod</span></span><span> o+rx /var/www/
</span></span>

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

3 ။ open_basedir ကန့်သတ်

Open_basedir သည် PHP screens scriptions များ 0 င်ရောက်နိုင်သည့်ဖိုင်စနစ်လမ်းညွှန်များကိုကန့်သတ်ထားသော PHP တွင် configuration item ဖြစ်သည်။ အကယ်. 0 င်ရောက်လာသည့်လမ်းကြောင်းသည်ဤအကွာအဝေးပြင်ပရှိလျှင် Disk_total_space () ကို ကန့်သတ်ထားလိမ့်မည်။

Troubleshooting နည်းလမ်း:

  • PHP.INI ကို Check Open_basedir ၏တန်ဖိုးကိုရှာဖွေရန် Phpinfo () ကို သုံးပါ။

  • အကယ်. သင်ကန့်သတ်ထားသောလမ်းကြောင်းနှင့် / အိမ် / အသုံးပြုသူကဲ့သို့ - / TMP နှင့်သင်၏ $ disk ကို မပါ 0 င်ပါကအမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။

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

  • Php.INI , HTP -FPM ၏ရေကန် configuration ကိုပြင်ဆင်ပါ

  • အကယ်. သင်သည် virtual host panel ကိုအသုံးပြုနေပါက (ထိုကဲ့သို့သော CPanel, plesk ကဲ့သို့) သင်နောက်ခံရှိခွင့်ပြုထားသောလမ်းကြောင်းကိုသတ်မှတ်ရန်လိုအပ်သည်။

 <span><span>php_admin_value open_basedir "/var/www/:/tmp/"
</span></span>

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

Selinux (သို့) Apparmor ကိုဖွင့်ထားသည့် Linux စနစ်များတွင် PHP သည်လုံခြုံရေးမူဝါဒန့်ကန့်သတ်ချက်များကြောင့်လမ်းကြောင်းအချို့ကို 0 င်ရောက်နိုင်မည်မဟုတ်ပါ။

Troubleshooting နည်းလမ်း:

  • System ကိုဖွင့ ထားရှိမရှိစစ်ဆေးပါ။

  • စာရင်းစစ်မှတ်တမ်းကိုကြည့်ပါ။ /Var/log/auditation/audit.log ကို ကြည့်ပါ။

  • ls -z ကို pather selinux အခြေအနေကိုကြည့်ရှုရန်။

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

  • Selinux ကိုခေတ္တပိတ်ထား (ထုတ်လုပ်မှုပတ်ဝန်းကျင်ကိုမထောက်ခံပါ);

  • မူဝါဒကိုပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်သင့်လျော်သောအခြေအနေကိုဖော်ပြရန် chccon ကို သုံးပါ။

  • Apparmor အတွက်ပရိုဖိုင်းကိုပြုပြင်ရန်လိုအပ်သည်။

 <span><span>sudo </span><span><span class="hljs-built_in">chcon</span></span><span> -t httpd_sys_content_t /var/www/ -R
</span></span>

3 ။ အကောင်းဆုံးအလေ့အကျင့်အကြံပြုချက်များ

  1. Path Verification ကိုပိုမိုနှစ်သက်သည်

  2. Log Tracking : PHP အမှားမှတ်တမ်းများကိုကြည့်ခြင်းပြ the နာ၏အရင်းအမြစ်ကိုလျင်မြန်စွာရှာဖွေနိုင်သည်။

  3. ကျိုးကြောင်းဆီလျော်သောဗဟိုချုပ်ကိုင်မှု လျှော့ချခြင်း

  4. ထုတ်လုပ်မှုပတ် 0 န်းကျင်အထီးကျန်ခြင်း - ကွန်တိန်နာသို့မဟုတ် chroot ပတ် 0 န်းကျင်တွင်ဝင်ရောက်ခွင့်ကိုကန့်သတ်ရန်ပိုမိုလုံခြုံသည်။

  5. CLI နှင့် Web ကွာခြားချက်ကိုခွဲခြမ်းစိတ်ဖြာခြင်း - အချို့သောလမ်းကြောင်းများကို CLI mode တွင်အသုံးပြုသည်။ ဝက်ဘ် mode သည်အကန့်အသတ်ရှိသည်။

ကောက်ချက်

Disk_total_space () သည်အများအားဖြင့်အသုံးပြုသော function တစ်ခုဖြစ်သော်လည်းဖိုင်စနစ် Access permissions, php လုံခြုံရေး configurations နှင့် system security security ပေါ်လစီများပါ 0 င်သည်။ ထို့ကြောင့်သင်ကကြုံတွေ့ရသည့်အခါမှားယွင်းသောသို့မဟုတ်အမှားတစ်ခုသတင်းပို့သည်သို့မဟုတ်အမှားတစ်ခုသတင်းပို့သည်, PHP code ကိုယ်နှိုက်ကိုအာရုံမစိုက်ပါ,

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