လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: Debug ကိုအသုံးပြုသောအခါလိုအပ်သော system permissions ၏ဖော်ပြချက်၏ဖော်ပြချက်

MySQLI :: Debug ကိုအသုံးပြုသောအခါလိုအပ်သော system permissions ၏ဖော်ပြချက်၏ဖော်ပြချက်

M66 2025-06-01

MySQLI :: Debug (Debug) သည် PHP ၏ MySQLI extension မှပေးသော debug function ကို MySQLI ဆက်သွယ်မှုနှင့်လုပ်ငန်းများနှင့်သက်ဆိုင်သော debug အချက်အလက်များကိုမှတ်တမ်းတင်ရန်ခွင့်ပြုသည်။ ဒေတာဘေ့စ် connection ပြ problems နာများသို့မဟုတ်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းများကိုဖြေရှင်းသောအခါဤလုပ်ဆောင်ချက်သည်အလွန်အသုံးဝင်သည်။ သို့သော်ယင်း၏အသုံးပြုမှုသည်အထူးသဖြင့်ခွင့်ပြုချက်များ၏စည်းကမ်းချက်များတွင်လိုအပ်သည်။ အနည်းငယ်ဂရုမစိုက်မှုသည်လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုအကျိုးသက်ရောက်စေခြင်းသို့မဟုတ်ဖြစ်ပေါ်စေသည်။

1 ။ MySQLI :: Debug () function ကိုမိတ်ဆက်

 mysqli::debug(string $debug_options): bool

ဤလုပ်ဆောင်ချက်က debugging options များကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ MySQL client library (များသောအားဖြင့်ဖိုင်) မှထောက်ပံ့သောတည်နေရာကိုစနစ်ကရေးထားသည်။ ဤလုပ်ဆောင်ချက်သည် MySQLI အရာဝတ်ထုကိုမစတင်ခင်တွင်သာခေါ်နိုင်သည်။

ဥပမာ -

 mysqli::debug("d:t:o,/tmp/client.trace");
$mysqli = new mysqli("localhost", "user", "password", "database");

အထက်ပါကုဒ်သည် Debug Log သို့ /tmp/Client.trace ဖိုင်သို့ debug log ကိုရေးလိမ့်မည်။

2 ။ MySQLI :: debug ကိုအသုံးပြုရန်လိုအပ်သောစနစ်ခွင့်ပြုချက်များ

1 ။ ဖိုင်စနစ်ရေးခွင့်ခွင့်ပြုချက်များ

  • Path Permission လိုအပ်ချက်များ - Debug log file သို့စာရေးရန်လမ်းကြောင်း (ဥပမာ /tmp/cloyent.trace ) သို့စာရေးရန်လမ်းကြောင်းကို PHP မှရေးသားရမည်။ ဆိုလိုသည်မှာဝက်ဘ်ဆာဗာသုံးစွဲသူများ ( www-data , apache , nginx စသဖြင့်) ဤဖိုင်တွဲတွင်ခွင့်ပြုချက်များကိုရေးရန်လိုအပ်သည်ဟုဆိုရန်ဖြစ်သည်။

  • အကြံပြုထားသောအလေ့အကျင့်များ

    • မှတ်တမ်းလမ်းကြောင်းကို Web Service အသုံးပြုသူရေးခွင့်ပြုသည့်လမ်းကြောင်းသို့သတ်မှတ်သင့်သည်။

    • root directory (သို့) အထိခိုက်မခံသောလမ်းကြောင်းများ (ဥပမာ / etc / root / ) ကိုအသုံးပြုခြင်းကိုရှောင်ပါ။

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

 sudo chown www-data:www-data /tmp
sudo chmod 755 /tmp

2 ။ Selinux သို့မဟုတ် apparmor အပေါ်ကန့်သတ်ချက်များ (ရှိလျှင်)

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

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

    • စာရင်းစစ်မှတ်တမ်းကိုကြည့်ပါ။ (များသောအားဖြင့် /var/log/audit.log ) ကိုကြည့်ပါ။

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

3 ။ PHP configuration နှင့်ဆက်စပ်သောခွင့်ပြုချက်

  • MySQLI :: Debug (Debug) ၏အပြုအမူသည် disable_rofunctions မှဘာသာရပ်ဖြစ်နိုင်သည်။

    • MySQLI :: Debug ကို Php.ini တွင်ပိတ်ထားလျှင်၎င်းကိုမသုံးနိုင်ပါ။

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

 ; php.ini နမူနာ
disable_functions =
open_basedir = /var/www:/tmp

3 ။ MySQLI :: Debug ကိုအသုံးပြုသည့်အခါမှတ်သားရမည့်အရာများ

1 ။ ကိုသာဆက်သွယ်မှုမပြုမီခေါ်ယူနိုင်ပါသည်

MySQLI :: Debug () Debug () Debug () Debug () ကို MySQLI () မတိုင်မီကကွပ်မျက်ခံရရမည်။

2 ။ စွမ်းဆောင်ရည်သက်ရောက်မှု

Debug Log ကိုဖွင့်ခြင်းကအချို့သောစွမ်းဆောင်ရည် overhead ကိုဖြစ်ပေါ်စေလိမ့်မည်။

3 ။ ယိုစိမ့်မှုအန္တရာယ်ကိုမှတ်တမ်းတင်ပါ

Debug log တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုအသေးစိတ်,

  • Access Permissions များကိုသတ်မှတ်ရန်အကြံပြုသည် -

 chmod 600 /tmp/client.trace

4 ။ log လည်ပတ်စီမံခန့်ခွဲမှု

debugging အချိန်ကြာပြီဆိုပါက log file သည်အလွန်ကြီးမားလာပြီး system log rotation ယန္တရားနှင့် တွဲဖက်. စီမံသင့်သည်။

4 ။ Code Perfect: MySQLI :: Debug (Debug) ကိုသုံးပါ () Debug ကိုသုံးပါ

 <?php
$logPath = "/tmp/mysqli_debug.log";

// လမ်းကြောင်းလွှဲပြောင်းရှိမရှိစစ်ဆေးပါ
if (is_writable(dirname($logPath))) {
    mysqli::debug("d:t:o," . $logPath);
} else {
    error_log("မှတ်တမ်းလမ်းညွှန်ကိုရေး။ မရပါ: " . dirname($logPath));
}

// ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ပါ
$mysqli = new mysqli("localhost", "testuser", "testpass", "testdb");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// သရုပ်ပြသရုပ်ပြ
$result = $mysqli->query("SELECT * FROM articles WHERE domain = 'm66.net'");

while ($row = $result->fetch_assoc()) {
    echo "ဘဲှ့: " . $row["title"] . "<br>";
}

$mysqli->close();
?>

5 ။ အကျဉ်းချုပ်

MySQLI :: Debug () Debug () သည်အားကောင်းသော debugging tool တစ်ခုဖြစ်သည်။ သို့သော်၎င်းကိုအသုံးပြုသောအခါသင်သေချာစေရန်လိုအပ်သည်။

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

  • PHP ပတ်ဝန်းကျင်သည်ဤလုပ်ဆောင်ချက်ကိုခွင့်ပြုထားသည်။

  • မှတ်တမ်းဖိုင်ကာကွယ်စောင့်ရှောက်ရေးနေရာဖြစ်သည်။

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

အကောင်းဆုံးသောအလေ့အကျင့်များအကြောင်းကိုအောက်ပါအချက်များတွင် MySQLI :: Debug (Debug) သည် ဒေတာဘေ့စ်ပြ problems နာများကိုရှာဖွေရန်အလွန်ကောင်းမွန်သောကိရိယာတစ်ခုဖြစ်လိမ့်မည်။