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

FTP_SYSTEME function ကိုပြန်ဖွင့်သည့်အခါပြ problems နာများကိုဖြေရှင်းနည်း

gitbox 2025-05-31

1 ။ ပြ problem နာထင်ရှားပြ

FTP_SYSTEME () function ကိုသင်ခေါ်ဆိုသောအခါမျှော်လင့်ထားသည့်ပြန်လာခြင်းသည်အောက်ပါအတိုင်းဖြစ်သည်။

 $system = ftp_systype($ftp_conn);
echo $system; // ပုံမှန်အခြေအနေများတွင် output ဖြစ်သင့်သည်:UNIX သို့မဟုတ် Windows NT

ဒါပေမယ့်အမှန်တကယ် output ကိုဖြစ်လိမ့်မယ်:

 UNKNOWN

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

1 ။ FTP server သည် System command ကိုမှန်ကန်စွာမတုံ့ပြန်ပါ

FTP_SYSTEMEME () သည် System အမျိုးအစားကိုရယူရန် FTP အပေါ်မှီခိုကြောင်းနောက်ခံ system command ကိုဖြစ်သည်။ အကယ် . ဆာဗာသည်ဤ command ကိုမတုံ့ပြန်ပါက,

ရောဂါနည်းလမ်း:
ဆာဗာတုံ့ပြန်မှုများကိုကြည့်ရှုရန် command များကိုကိုယ်တိုင်ပို့ရန် FTP_RAW () ကိုသုံးနိုင်သည်။

 $response = ftp_raw($ftp_conn, "SYST");
print_r($response);

အကယ် . သင်မြင်သောတုန့်ပြန်မှုသည် 215 UNIX အမျိုးအစားကိုပုံမှန်မဟုတ်လျှင် L8 ဖြစ်သည့် L8 တွင်မစတင်ပါက,


2 ။ ဆာဗာသည်လုံခြုံရေးကန့်သတ်ချက်များသို့မဟုတ်စိတ်ကြိုက် FTP 0 န်ဆောင်မှုများကိုပြုလုပ်နိုင်သည်

လုံခြုံရေးအကြောင်းပြချက်များအရ FTP 0 န်ဆောင်မှုပေးသူများသည် System command ကို dispire များသို့မဟုတ်၎င်းတို့၏ FTP ဆာဗာများသည်ပုံမှန်မဟုတ်သော edgers များ,

အကြံပြုချက်များကိုဖြေရှင်းရန်:
System command ကိုပိတ်ထားသည်ကိုအတည်ပြုရန် FTP 0 န်ဆောင်မှုပေးသူကိုသင်ဆက်သွယ်နိုင်သည်။ အကယ်. သင်သည်သင်၏ကိုယ်ပိုင် configure fTP service (vsftpd, proftpd စသည်) ကိုအသုံးပြုနေပါက system_en_enable file တွင် system_en_enable သို့မဟုတ်ဆက်စပ်သောရွေးချယ်စရာများကိုပိတ်ထားခြင်းရှိမရှိစစ်ဆေးနိုင်သည်။


3 ။ PHP ဗားရှင်းသို့မဟုတ်တိုးချဲ့ခြင်းပြ issues နာများ

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

ရောဂါနည်းလမ်း:
PHP ဗားရှင်းကိုပုံနှိပ်ပါ။ FTP အထောက်အပံ့ကိုသေချာအောင်လုပ်ပါ။

 phpinfo();

FTP အထောက်အကူပြု ပစ္စည်းကို ဖွင့်ထားပြီး PHP ဗားရှင်းအသစ်သည်ဖြစ်စေ, အနည်းဆုံး PHP 7.4 သို့မဟုတ်အထက်တွင်အသုံးပြုရန်အကြံပြုသည်ကိုအတည်ပြုပါ။


4 ။ ကွန်ယက် proxy သို့မဟုတ် firewall ဝင်ရောက်စွက်ဖက်မှု

အချို့သောကွန်ယက်ပတ်ဝန်းကျင်တွင်ပွင့်လင်းမြင်သာသော proxy နှင့် firewall devices များအထူးသဖြင့် passive mode ကိုအသုံးပြုသောအခါ FTP ညွှန်ကြားချက်များကိုကြားဖြတ်နိုင်သည်။

အကြံပြုချက်များကိုဖြေရှင်းရန်:
တိုးတက်မှုရှိလားဆိုတာကြည့်ဖို့ Active / Passive Mode ကိုပြောင်းဖို့ကြိုးစားပါ။

 ftp_pasv($ftp_conn, true); // passive mode ကိုသုံးပါ

သို့မဟုတ်:

 ftp_pasv($ftp_conn, false); // Active Mode ကိုသုံးပါ

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


3 ။ နည်းဗျူဟာများကိုကိုင်တွယ်ဖြေရှင်းခြင်း

System အမျိုးအစားကိုမရရှိနိုင်လျှင်ပင်ပရိုဂရမ်ပျက်ကျမှုသို့မဟုတ်ယုတ္တိအမှားအမှားများကိုရှောင်ရှားရန်အောက်ပါနည်းဗျူဟာများကိုမွေးစားနိုင်သည်။

1 ။ ပုံမှန်စနစ်အမျိုးအစားကိုသတ်မှတ်ပါ

FTP_SYSTEMEME () သည် "မသိသော" သို့ပြန်လာသည့်အခါသင် UNIX သို့ပုံမှန်လုပ်ဆောင်မှုလမ်းကြောင်းဖြစ်သော default အမျိုးအစားတစ်ခုကိုသတ်မှတ်နိုင်သည်။

 $system = ftp_systype($ftp_conn);
if ($system === false || $system === "UNKNOWN") {
    $system = "UNIX"; // ပုံမှန်အပြောင်းအလဲနဲ့ဖြစ်ပါတယ် UNIX
}

2 ။ FTP အမျိုးအစားများကိုသတ်မှတ်ရန် configuration files များကိုသုံးပါ

လူသိများသော FTP ဆာဗာများအတွက်၎င်းတို့၏အမျိုးအစားများကိုအလိုအလျောက်ဖော်ထုတ်ခြင်းကိုမှီခိုခြင်းမရှိဘဲ configuration files များတွင်သတ်မှတ်နိုင်သည်။

 $ftp_hosts = [
    'ftp.gitbox.net' => 'UNIX',
    'backup.gitbox.net' => 'Windows NT'
];
$host = parse_url($ftp_url, PHP_URL_HOST);
$system = $ftp_hosts[$host] ?? ftp_systype($ftp_conn);