PHP PHP ကို အသုံးပြု. FTP လုပ်ငန်းစဉ်တွင် FTP_Site () သည်အငြင်းပွားဖွယ်ရာလုပ်ဆောင်မှုဖြစ်သည်။ developer များက developer များက FTP server သို့ site command များကိုပို့ရန်ခွင့်ပြုသည်။ ထို့ကြောင့် server extension functions များကို ဖွင့်ခြင်း, ဤဆောင်းပါးသည်ဤဖြစ်စဉ်၏အဓိကအကြောင်းရင်းများကိုနက်နက်ရှိုင်းရှိုင်းခွဲခြမ်းစိတ်ဖြာပြီး developer များကဤခန့်မှန်းရခက်သည့်အပြုအမူနှင့်မည်သို့ဆက်ဆံသည်ကိုလေ့လာပါမည်။
FTP protocol ကို RFC 959 မှသတ်မှတ်သည်, site command ကို "တိုးချဲ့ command" အဖြစ်ခွဲခြားထားသော်လည်း၎င်း၏အပြုအမူနှင့် syntax သည် RFC ၏မဖြစ်မနေသတ်မှတ်ချက်များအတွင်းတွင်ဖြစ်သည်။ အဓိပ်ပါယျမှာ:
FTP server software တစ်ခုစီ (Proftpd, VSFTPD, ftpd, ftc. filezilla server စသည်) သည်သင်၏ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့်ဆိုဒ်ပညတ်များကိုအထောက်အကူပြုမည်ကိုဆုံးဖြတ်နိုင်သည်။
ပံ့ပိုးမှုရှိမရှိဆိုလျှင်ပင်ဆိုဒ်သည်ဆိုဒ်တွင်လက်ခံသည်မှာအလွန်အမင်းကွဲပြားနိုင်သည်။
site subcommand အမည်များအတူတူပင်ဖြစ်သော်လည်း parameter သည်အဓိပ္ပာယ်ကောက်ယူခြင်းနှင့်ကွပ်မျက်မှုအကျိုးသက်ရောက်မှုကွဲပြားနိုင်သည်။
ဥပမာအားဖြင့်, အချို့သောဆာဗာများကိုထောက်ခံသည်။
ftp_site($ftp_conn, "CHMOD 755 /public_html/index.php");
အခြားဆာဗာများသည် အမည်မသိ site command 500 ကိုပြန်ပေးလိမ့်မည်။ chmod subcommand မှအမှားများ။ နောက်ဥပမာတစ်ခု -
ftp_site($ftp_conn, "UTIME /file.txt 20240607080000");
ဤ command သည် timestamp ကိုအချို့သောဆာဗာများပေါ်တွင် (ဥပမာ Module များပါ 0 င်သည့်) တွင်အချို့သောဆာဗာများပေါ်တွင်အောင်မြင်စွာမွမ်းမံနိုင်သည်။
Subcommand ကိုပစ်မှတ်ဆာဗာတွင်ပံ့ပိုးထားသည့်နေရာတွင်ပင်လျှင် Execute ခွင့်ပြုချက်ကိုချိတ်ဆက်ထားသောအသုံးပြုသူအားအမြဲတမ်းမပေးချေ။ service command များကို default server configurations များစွာတွင် default default အားဖြင့်ပိတ်ထားသည်။ ဥပမာအားဖြင့်အချို့သောဆာဗာများကိုပင်ထောက်ပံ့သည်။
ftp_site($ftp_conn, "SYMLINK /target /link");
550 ခွင့်ပြုချက်ကိုငြင်းပယ်ခြင်းကဲ့သို့သောအမှားတစ်ခု။ ခွင့်ပြုချက်မလုံလောက်ခြင်းကြောင့်လည်းပြန်လာနိုင်သည်။ ဆိုလိုသည်မှာ PHP ဇာတ်ညွှန်းသည်မတူညီသောဆာဗာများသို့မဟုတ်အသုံးပြုသူများအပေါ်တွင်အလုပ်လုပ်သည်။ ရလဒ်များသည်အလွန်ကွဲပြားနိုင်သည်။
FTP server ဆော့ (ဖ်) ဝဲ၏ကွဲပြားခြားနားမှုများသည် FTP_Site () ၏ကိုက်ညီမှုမရှိသောအပြုအမူအတွက်အရေးကြီးသောအကြောင်းပြချက်လည်းဖြစ်သည်။ ဤတွင်ဘုံဆော့ဖ်ဝဲအများအပြား၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများမှာ -
Proftpd - အထူးသဖြင့် mod_site_exec ကိုဖွင့်ပြီးနောက်,
VSFTPPD : site command များအတွက်ပံ့ပိုးမှုသည်အလွန်အကန့်အသတ်ရှိသည်။
Pure-FTPD - အကန့်အသတ်ရှိသော site command များကိုထောက်ပံ့ပေးပြီးအများစုမှာ configuration files များတွင်အတိအလင်းဖွင့်ထားရန်လိုအပ်သည်။
FileZilla ဆာဗာ - အချို့သော site command များကိုအကောင်အထည်ဖော်သည်။ သို့သော် command set သည်သေးငယ်ပြီးစာရွက်စာတမ်းများမပြည့်စုံပါ။
Windows IIS FTP : ဆိုက်အထောက်အပံ့သည်သုညနီးပါးနီးပါးရှိပြီး command အများစုကိုတိုက်ရိုက်လျစ်လျူရှုထားသည်။
ကွဲပြားခြားနားသောအကောင်အထည်ဖော်မှုနောက်ကွယ်မှဒီဇိုင်းအတွေးအခေါ်ကွဲပြားခြားနားသည်။ အချို့ကလုံခြုံရေးနှင့်အနိမ့်ဆုံးအခွင့်အာဏာ၏အခြေခံမူများကိုလိုက်နာကြပြီးအချို့မှာမူလုပ်ဆောင်ချက်များနှင့်ပြောင်းလွယ်ပြင်လွယ်များအတွက် interfles များပိုမိုများပြားလာသည်။
FTP_Site () ၏ကျယ်ပြန့်သောမသေချာမရေရာမှုများကြောင့်၎င်းကိုအသုံးပြုသောအခါအထူးသတိထားသင့်သည်။ ဒီနေရာမှာအကြံပြုချက်အချို့ရှိပါတယ်:
site command များပေါ်တွင်အရေးပါသောလုပ်ငန်းများပြီးမြောက်ရန် site command များကိုမှီခိုခြင်းမပြုပါနှင့် ။
PHP ၏ စံ FTP စစ်ဆင်ရေးများကိုသုံးပါ ။ ဥပမာ - PHP ၏ FTP_CHMOD () PHP သည်အောက်ခြေတွင် site chmod ကိုသုံးနိုင်သည်။
ကြိုတင်ထောက်လှမ်းရေးအထောက်အပံ့စွမ်းရည် - function တစ်ခုသည်အချို့သော site command များကိုပေးပို့ရန်နှင့် script ကိုမဖွင့်မီ၎င်းတို့၏ပြန်လာ status ကိုဖမ်းယူရန်ဒီဇိုင်းပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်:
function site_command_supported($conn, $command) {
$result = @ftp_site($conn, $command);
return $result !== false;
}
ဆာဗာအမျိုးအစားများကိုမှတ်တမ်းတင်ခြင်းနှင့်ခွဲခြားခြင်း - 0 န်ဆောင်မှုပေးသည့်ကြိုဆိုသည့်ကြိုဆိုသည့်အချက်အလက်များကို FTP ဆာဗာများဖြင့်ပြန်လည်ရောက်ရှိပါ။
$welcome = ftp_raw($conn, "SYST");
// ဆာဗာအမျိုးအစားများခွဲခြမ်းစိတ်ဖြာပါ,အဲဒါကိုသုံးမလားဆိုတာဆုံးဖြတ်ပါ SITE အမိန့်
မှတ်တမ်းတင်ထားသောဆာဗာအပြုအမူ - စီးပွားရေးအဆင့်တွင်နေရာချထားမှုတွင်ဆာဗာတစ်ခုစီသည်မျက်စိကန်းသောဖုန်းခေါ်ဆိုမှုများကိုရှောင်ရှားရန်ဘုံဆိုက်များအတွက်အထောက်အပံ့များကိုမှတ်တမ်းတင်သင့်သည်။
ftp_site () သည်အစွမ်းထက်သော်လည်းအန္တရာယ်ရှိသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် FTP protocol ဒီဇိုင်းတွင်ဆာဗာ "အပြုအမူနှင့်အဓိပ္ပါယ်ဖွင့်ဆိုချက်" ကိုဆာဗာ "အပြုအမူအဓိပ္ပါယ်" အပေါ်ထားရှိသော Lawsez-Faire သဘောထားကိုဖော်ထုတ်ပြီးယနေ့ကွန်ယက်ပရိုဂရမ်တွင် "Cross-platform platform consist consist" ၏အဓိကပြ problem နာကိုလည်းဖော်ပြသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်လုပ်ငန်းလည်ပတ်မှုပတ်ဝန်းကျင်ကိုအပြည့်အဝထိန်းချုပ်နိုင်ခြင်းမရှိပါကအပြုအမူအတွက်မသေချာမရေရာသည့်လုပ်ဆောင်မှုများကိုမှီခိုနေရန်ကျွန်ုပ်တို့ရှောင်ရှားသင့်သည်။
အကယ်. သင်သည် site command များကိုအသုံးပြုရန်လိုအပ်ပါကစည်းလုံးညီညွတ်သောဆာဗာဘေးတွင်ဖြန့်ကျက်မှုသတ်မှတ်ချက်မှတဆင့်ခြားနားချက်ကိုလျှော့ချရန်သို့မဟုတ် Control Panel / API ကဲ့သို့သောခေတ်မီသောနည်းလမ်းများဖြင့် FTP Native command များကိုအစားထိုးရန်အကြံပြုသည်။ နောက်ဆုံးတွင် FTP_Site ($ CON, "unt /us/local/bin/bin/ban/bin/ban/bin/backup.sh") ကဲ့သို့ရိုးရှင်းသောစစ်ဆင်ရေးတစ်ခု, အကယ်. အပြုအမူသည်မကိုက်ညီပါက၎င်းသည် System Maintory အတွက်အိပ်မက်ဆိုးတစ်ခုဖြစ်လာလိမ့်မည်။
ဥပမာအပြည့်အစုံကိုကြည့်ပါ။
$ftp_conn = ftp_connect("ftp.gitbox.net");
ftp_login($ftp_conn, "username", "password");
ftp_site($ftp_conn, "CHMOD 755 /public_html/test.php");
ftp_close($ftp_conn);
FTP.gitbox.net ၏ FTP 0 န်ဆောင်မှုကိုအပြည့်အဝထိန်းချုပ်နိုင်သည့်အချိန်မှသာအထက်ပါကုဒ်ကိုယုံကြည်စိတ်ချစွာဖြင့်အသုံးပြုနိုင်သည်။ ဒီလိုမှမဟုတ်ရင်အမှားရိုက်ကူးခြင်းနှင့်သစ်ထုတ်လုပ်ရေးယန္တရားများကိုထည့်သွင်းရန်သတိရပါ။