ကွန်ယက်ပရိုဂရမ်အတွက် PHP အတွက် PHP ကိုအသုံးပြုသောအခါအထူးသဖြင့် socient connection များသို့မဟုတ်ဒေတာဘေ့စ်ဆက်သွယ်မှုများသို့ရောက်သောအခါ "connection refused" ၏အမှားအယွင်းများကိုသင်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤအမှားသည်များသောအားဖြင့် PHP POST သည် 0 န်ဆောင်မှုကိုချိတ်ဆက်ရန်ကြိုးပမ်းနေခြင်းမဟုတ်ပါ,
ဤဆောင်းပါးသည်ဤအမှား၏အကြောင်းရင်းများကိုအသေးစိတ်ဖော်ပြပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများကိုအသေးစိတ်ဖော်ပြထားသည်။ တစ်ချိန်တည်းမှာပင်ဥပမာများရှိ URL ဒိုမိန်းအမည်များကိုအဆင်ပြေသောစည်းလုံးမှုစီမံခန့်ခွဲမှုအတွက် M66.net ဖြင့်အစားထိုးထားသည်။
PHP ၏ Connect () သည်ကွန်ယက်ချိတ်ဆက်မှုတစ်ခုတည်ဆောက်ရန်ကြိုးပမ်းသည့်အခါ, သတ်မှတ်ထားသော port တွင်သတ်မှတ်ထားသော port တွင် 0 န်ဆောင်မှုအရနားထောင်ခြင်းမရှိပါကသို့မဟုတ် firewalls သည် connection ကိုပိတ်ဆို့ထားလိမ့်မည်။ ရိုးရိုးလေးပြောရလျှင်အခြားပါတီ၏ဆာဗာသည်ဆက်သွယ်မှုတောင်းဆိုမှုကိုပယ်ချသည်။
Target Server သည်သက်ဆိုင်ရာ 0 န်ဆောင်မှုကိုမစတင်ပါ
ဥပမာအားဖြင့်, ဒေတာဘေ့စ်နှင့်ဆက်သွယ်သည့်အခါဒေတာဘေ့စ် 0 န်ဆောင်မှုသည်မပြေးပါကသို့မဟုတ်သင်ဆက်သွယ်ထားသော API 0 န်ဆောင်မှုကိုမဖွင့်ပါကဆက်သွယ်မှုကိုငြင်းပယ်လိမ့်မည်။
ဆက်သွယ်မှုဆိပ်ကမ်းအမှား
ဆိပ်ကမ်းကိုမှားယွင်းစွာရေးသားထားသည့်အခါသို့မဟုတ် 0 န်ဆောင်မှုပေးသော port ကိုဆက်သွယ်သည့်အခါအသုံးပြုသော port နှင့်ကိုက်ညီသည်။
Firewall သို့မဟုတ်လုံခြုံရေးအဖွဲ့ကန့်သတ်ချက်များ
ဆာဗာ firewall သို့မဟုတ် cloud host ၏လုံခြုံရေးအဖွဲ့သည်ဆိပ်ကမ်းသို့ပြင်ပသို့ဝင်ရောက်ခွင့်ကိုကန့်သတ်ထားသည်။
Target Server IP address သို့မဟုတ် domain name resolution အတွက်အမှား
ဆက်သွယ်မှုဒိုမိန်းအမည်သို့မဟုတ်အိုင်ပီလိပ်စာသည်မမှန်ကန်ပါ။ Connection တောင်းဆိုမှုကိုမှားယွင်းသောစက်သို့ပို့ရန်တောင်းဆိုမှုကိုဖြစ်ပေါ်စေသည်။
client ဒေသခံကွန်ယက်ပြ issues နာများ
ဒေသခံကွန်ယက်သည်ထုတ်ပေးခြင်းမှတောင်းဆိုမှုကိုပိတ်ပင်ထားသည်။
ဒေတာဘေ့စ် 0 န်ဆောင်မှုကိုဥပမာတစ်ခုအဖြစ်ယူပြီး 0 န်ဆောင်မှုအဆင့်အတန်းကိုစစ်ဆေးရန် command များကိုသုံးနိုင်သည်။
# MySQL ဝန်ဆောင်မှုဥပမာ
systemctl status mysqld
Port Connection ကိုစမ်းသပ်ရန် Telnet ကိုသုံးပါ။
telnet m66.net 3306
ဆက်သွယ်မှုပျက်သွားပါက 0 န်ဆောင်မှုကိုမဖွင့်ပါသို့မဟုတ် port မဖွင့်ပါဟုဆိုလိုသည်။
PHP Code ရှိ port နံပါတ်သည် 0 န်ဆောင်မှု၏အမှန်တကယ်နားထောင်ခြင်းဆိပ်ကမ်းနှင့်ကိုက်ညီကြောင်းသေချာပါစေ။
<?php
$host = "m66.net";
$port = 12345; // ဝန်ဆောင်မှုနားထောင်ခြင်းဆိပ်ကမ်းကိုအတည်ပြုပါ
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("ဖန်တီး socket ဆုံးရှုံး: " . socket_strerror(socket_last_error()));
}
$result = @socket_connect($socket, $host, $port);
if ($result === false) {
$errCode = socket_last_error($socket);
$errMsg = socket_strerror($errCode);
if (strpos($errMsg, 'Connection refused') !== false) {
echo "ချိတ်ဆက်မှုအားငြင်းဆန်သည်,ပစ်မှတ်ဆာဗာသည်ဆိပ်ကမ်းကိုဖွင့ ်. မရပါ $port သို့မဟုတ် firewall connection ကိုပိတ်ဆို့。\n";
} else {
echo "连接ဆုံးရှုံး,အမှားသတင်းစကား:$errMsg\n";
}
socket_close($socket);
exit;
}
echo "အောင်မြင်စွာဆက်သွယ်မှု!\n";
// နောက်ဆက်တွဲဖတ်ရှုခြင်းနှင့်စစ်ဆင်ရေးရေးရန်...
socket_close($socket);
?>
သင်ခေါ်ဆိုနေသော API သည် http://api.example.com/data ဟုခေါ်သည်ဆိုပါစို့။ Domain Name ကို M66.net ဟုခေါ်သည်။
<?php
$url = "http://api.example.com/data";
// အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ m66.net
$parsedUrl = parse_url($url);
$modifiedUrl = $parsedUrl['scheme'] . "://m66.net" . $parsedUrl['path'];
if (!empty($parsedUrl['query'])) {
$modifiedUrl .= '?' . $parsedUrl['query'];
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $modifiedUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "cURL အမှား: " . curl_error($ch);
} else {
echo "တောင်းဆိုမှုအောင်မြင်ခဲ့,ဒေတာကိုပြန်သွားပါ:\n" . $response;
}
curl_close($ch);
?>
"Connection မှငြင်းပယ်ခြင်း" အမှား () function ကို PHP တွင် function တွင် function ကိုကြုံဆောင်ရန်ကြုံတွေ့ရသောအခါအောက်ပါအဆင့်များကိုဖြေရှင်းရန်အကြံပြုသည် -
0 န်ဆောင်မှုကိုစတင်ပြီးမှန်ကန်သော port ကိုနားထောင်သည်ကိုအတည်ပြုပါ။
Firewall နှင့် Security Group စည်းမျဉ်းစည်းကမ်းများသည်ဝင်ရောက်ခွင့်ပြုသည်ကိုအတည်ပြုပါ။
ဆက်သွယ်မှု၏ဒိုမိန်းအမည်နှင့်ဆိပ်ကမ်းမှန်ကန်ကြောင်းစစ်ဆေးပါ။
Telnet သို့မဟုတ်အလားတူကိရိယာများနှင့်ကွန်ယက်ဆက်သွယ်မှုကိုစမ်းသပ်ပါ။
Code ကိုကိုင်တွယ်ခြင်း, ရိုက်ကူးခြင်းနှင့် output just formput just or usror အချက်အလက်များကိုအမှားလုပ်ပါ။
၎င်းသည်ပြ the နာကိုလျင်မြန်စွာရှာဖွေနိုင်ပြီးသင်၏ပရိုဂရမ်၏လည်ပတ်မှုကိုအကျိုးသက်ရောက်စေသော "connection repree" ကိုရှောင်ရှားနိုင်သည်။