ตั้ง Custom Domain บน WordPress Hosting

ชี้ Domain ใหม่ไปยัง WordPress Hosting ตั้งค่า DNS และ Nameserver ได้ด้วยตัวเอง

ตั้ง Custom Domain บน WordPress Hosting Domain

การซื้อ Domain มาแล้วยังไม่รู้จะชี้ไปยัง WordPress Hosting อย่างไร เป็นเรื่องที่หลายคนสับสน โดยเฉพาะผู้เริ่มต้นที่เพิ่งซื้อ Hosting และ Domain จากคนละเจ้ากัน บทความนี้จะอธิบายทุกขั้นตอนตั้งแต่ต้นจนจบ ตั้งแต่การเพิ่ม Domain เข้า cPanel ไปจนถึงการตรวจสอบว่าเว็บทำงานถูกต้องแล้ว

ทำความเข้าใจก่อน: Domain vs Hosting คืออะไร

ก่อนเริ่ม ควรเข้าใจความต่างระหว่าง Domain กับ Hosting เสียก่อน

มีสองวิธีหลักในการชี้ Domain ไปยัง Hosting ได้แก่ การเปลี่ยน Nameserver และการตั้งค่า A Record ในหน้า DNS Management ของผู้ให้บริการ Domain โดยแต่ละวิธีมีข้อดีต่างกัน

วิธีที่ 1: เปลี่ยน Nameserver (แนะนำสำหรับผู้เริ่มต้น)

การเปลี่ยน Nameserver เป็นวิธีที่ง่ายที่สุด เพราะให้ Hosting จัดการ DNS ทั้งหมดแทน เหมาะสำหรับคนที่ซื้อ Domain จากภายนอกแต่ใช้ Hosting ของเราเป็นหลัก

ขั้นตอนที่ 1 — หา Nameserver ของ Hosting

เข้า cPanel ของ Hosting แล้วไปที่เมนู Server Information หรือดูในอีเมลยืนยันการสมัครที่ได้รับตอนซื้อ Hosting จะพบ Nameserver ในรูปแบบประมาณนี้

ns1.yourhostingprovider.com
ns2.yourhostingprovider.com

ขั้นตอนที่ 2 — เปลี่ยน Nameserver ที่ผู้ให้บริการ Domain

เข้าสู่ระบบของผู้ให้บริการ Domain (เช่น GoDaddy, Namecheap, Domains.co.th หรือ จดทะเบียนไทย) จากนั้น

  1. เลือก Domain ที่ต้องการ
  2. ไปที่เมนู Nameservers หรือ DNS Settings
  3. เลือก Custom Nameservers หรือ Use Custom DNS
  4. ใส่ ns1 และ ns2 ของ Hosting ที่ได้มา
  5. บันทึก — รอ DNS Propagation 1–48 ชั่วโมง
หมายเหตุ: หลังเปลี่ยน Nameserver แล้ว DNS ทุก Record ของ Domain จะถูกจัดการโดย Hosting แทน ดังนั้นถ้าเคยตั้ง MX Record หรือ Email ไว้ที่ผู้ให้บริการ Domain เดิม จะต้องย้ายมาตั้งใหม่ใน cPanel ด้วย

วิธีที่ 2: ตั้งค่า A Record เท่านั้น (ยืดหยุ่นกว่า)

ถ้าต้องการเก็บการจัดการ DNS ไว้ที่ผู้ให้บริการ Domain เดิม (เช่น ใช้ Email อยู่ที่ Google Workspace) ให้ใช้วิธีตั้งค่า A Record แทน

ขั้นตอนที่ 1 — หา IP Address ของ Hosting

เข้า cPanel แล้วดูที่มุมขวาบนหรือใน Server Information จะเห็น Shared IP Address ในรูปแบบ

# ตัวอย่าง IP ของ Shared Hosting (ตัวเลขจริงจะแตกต่างกัน)
Shared IP Address: 103.28.xxx.xxx

# หรือสามารถ ping hostname ของ Hosting เพื่อหา IP
ping yourhostingprovider.com

ขั้นตอนที่ 2 — ตั้ง A Record ที่ผู้ให้บริการ Domain

ในหน้า DNS Management ของผู้ให้บริการ Domain ให้เพิ่มหรือแก้ไข A Record ดังนี้

# A Record สำหรับ Root Domain
Type: A
Host: @  (หรือ yourdomain.com ขึ้นอยู่กับ Interface)
Value: 103.28.xxx.xxx  (IP ของ Hosting)
TTL: 3600

# A Record สำหรับ www
Type: A
Host: www
Value: 103.28.xxx.xxx  (IP เดียวกัน)
TTL: 3600
Tip: บางผู้ให้บริการ Domain รองรับ CNAME Record สำหรับ www ให้ชี้ไปที่ Root Domain แทน ซึ่งง่ายกว่าในการอัปเดต IP ในอนาคต

เพิ่ม Domain เข้า cPanel (Addon Domain)

ไม่ว่าจะใช้วิธีไหน หลังตั้ง DNS แล้วยังต้องเพิ่ม Domain เข้า cPanel ด้วย เพื่อให้ Hosting รู้จักและเสิร์ฟไฟล์ WordPress ให้ Domain นั้น

  1. เข้า cPanel ไปที่หมวด Domains แล้วคลิก Addon Domains
  2. กรอก Domain ใหม่ลงในช่อง New Domain Name เช่น mybusiness.com
  3. ระบบจะสร้าง Subdomain และ Document Root ให้อัตโนมัติ เช่น public_html/mybusiness.com/
  4. คลิก Add Domain

หลังจากนั้นให้ติดตั้ง WordPress ลงใน Document Root ของ Domain นั้น หรือถ้าติดตั้งไปแล้วให้ตรวจสอบว่าไฟล์ WordPress อยู่ใน Folder ที่ถูกต้อง

ตั้ง WordPress URL ให้ตรงกับ Domain ใหม่

หลังชี้ Domain แล้ว ต้องเข้าไปแก้ URL ใน WordPress ด้วย มิเช่นนั้นเว็บจะ Redirect ไปยัง Domain เดิม

  1. เข้า WordPress Admin Dashboard
  2. ไปที่ Settings > General
  3. แก้ WordPress Address (URL) และ Site Address (URL) ให้เป็น Domain ใหม่ เช่น https://mybusiness.com
  4. คลิก Save Changes

ถ้าเข้า Admin ไม่ได้ สามารถแก้ไขผ่านไฟล์ wp-config.php ได้โดยตรง โดยเปิดไฟล์ผ่าน File Manager ใน cPanel แล้วเพิ่มบรรทัดนี้ก่อน /* That's all, stop editing! */

define('WP_HOME', 'https://mybusiness.com');
define('WP_SITEURL', 'https://mybusiness.com');

ติดตั้ง SSL Certificate สำหรับ Domain ใหม่

หลังชี้ Domain เสร็จแล้ว อย่าลืมติดตั้ง SSL เพื่อให้เว็บใช้ HTTPS ได้ใน cPanel ส่วนใหญ่มี AutoSSL ให้ฟรี

  1. เข้า cPanel ไปที่ Security > SSL/TLS Status
  2. หาก Domain ใหม่ยังไม่มี SSL ให้คลิก Run AutoSSL
  3. รอระบบออก Certificate ให้อัตโนมัติ (ใช้เวลาไม่กี่นาที)
  4. กลับไปตั้ง WordPress URL เป็น https:// ตามขั้นตอนข้างต้น

ตรวจสอบว่า Custom Domain ทำงานถูกต้อง

หลังตั้งค่าทุกอย่างเสร็จแล้ว ให้ตรวจสอบด้วยคำสั่งและเครื่องมือเหล่านี้

# 1. ตรวจสอบว่า DNS Propagation เสร็จแล้วหรือยัง
nslookup mybusiness.com

# 2. ดู A Record ของ Domain
dig mybusiness.com A +short

# 3. ดู Nameserver ที่ Domain ใช้อยู่
dig mybusiness.com NS +short

# 4. ตรวจ HTTP Response และ Redirect Chain
curl -I https://mybusiness.com

# 5. ตรวจสอบ SSL Certificate
curl -vI https://mybusiness.com 2>&1 | grep -E "SSL|subject|expire"
Tip: ถ้าไม่ต้องการใช้ Command Line สามารถใช้เว็บออนไลน์อย่าง whatsmydns.net หรือ dnschecker.org เพื่อดูว่า DNS Propagation ไปถึง Server ทั่วโลกแล้วหรือยัง โดย A Record ควรชี้ไปยัง IP ของ Hosting ที่ถูกต้อง

แก้ปัญหาที่พบบ่อย

Error: "This site can't be reached" หรือ ERR_NAME_NOT_RESOLVED

เกิดขึ้นเมื่อ DNS ยังไม่ Propagate หรือตั้ง Nameserver/A Record ผิด ให้ตรวจสอบว่าบันทึกค่าถูกต้องหรือยัง โดยใช้ nslookup mybusiness.com 8.8.8.8 เพื่อดูผลจาก DNS Server ของ Google ถ้าผลถูกต้องแล้วแต่เว็บยังไม่ขึ้น ให้รอ DNS Propagation 24–48 ชั่วโมง

Error: "Domain Not Pointing to This Server" ใน cPanel AutoSSL

AutoSSL ต้องการให้ Domain ชี้มายัง IP ของ Hosting ก่อนจึงจะออก Certificate ได้ ถ้าเจอ Error นี้แสดงว่า DNS ยังไม่ Propagate เสร็จ หรือ A Record ยังชี้ไปยัง IP เดิมอยู่ ให้รอให้ DNS อัปเดตแล้ว Run AutoSSL ใหม่อีกครั้ง

Error: WordPress Redirect Loop หรือ Too Many Redirects

มักเกิดจากตั้ง WordPress URL ไม่ตรงกับ Domain จริง หรือตั้ง HTTPS ใน WordPress แต่ SSL ยังไม่ได้ติดตั้ง ให้แก้ไขไฟล์ wp-config.php และเพิ่มบรรทัดนี้

define('WP_HOME', 'https://mybusiness.com');
define('WP_SITEURL', 'https://mybusiness.com');

# หรือถ้า Hosting อยู่หลัง Load Balancer/Proxy ให้เพิ่ม
$_SERVER['HTTPS'] = 'on';

Error: เว็บขึ้น แต่แสดงหน้าเว็บอื่น (Default Page หรือเว็บของ Hosting)

เกิดจากลืมเพิ่ม Domain เป็น Addon Domain ใน cPanel ทำให้ Hosting ไม่รู้ว่า Domain นี้ต้องเสิร์ฟไฟล์จาก Folder ไหน ให้กลับไปทำขั้นตอน Addon Domain ใน cPanel อีกครั้ง และตรวจสอบว่า Document Root ชี้ไปยัง Folder ที่มีไฟล์ WordPress อยู่

Error: Mixed Content หลังเปลี่ยนเป็น HTTPS

เกิดจากมีรูปภาพหรือ Script บางส่วนยังใช้ URL แบบ http:// อยู่ ให้ติดตั้ง Plugin Really Simple SSL หรือ Better Search Replace แล้วทำการ Search & Replace URL จาก http://mybusiness.com เป็น https://mybusiness.com ในฐานข้อมูล


คำถามที่พบบ่อย

Q: ชี้ Domain แล้วต้องรอนานแค่ไหน?

A: โดยปกติ DNS Propagation ใช้เวลา 1–48 ชั่วโมง แต่ส่วนใหญ่จะเสร็จภายใน 2–4 ชั่วโมง ขึ้นอยู่กับค่า TTL เดิมของ DNS Record ถ้า TTL ตั้งไว้สูง (เช่น 86400 วินาที) จะต้องรอนานกว่า แนะนำให้ลด TTL เหลือ 300 ล่วงหน้า 24 ชั่วโมงก่อนเปลี่ยนเพื่อให้ Propagate เร็วขึ้น

Q: ควรใช้วิธีเปลี่ยน Nameserver หรือตั้ง A Record?

A: ถ้าต้องการความง่ายและไม่ได้ใช้บริการ Email หรือ DNS พิเศษจากผู้ให้บริการ Domain เดิม แนะนำเปลี่ยน Nameserver เพราะจัดการได้จากที่เดียวคือ cPanel แต่ถ้าใช้ Google Workspace หรือ Email อื่นอยู่แล้วและต้องการเก็บ MX Record ที่ผู้ให้บริการ Domain เดิม ให้ใช้วิธีตั้ง A Record แทน

Q: มี Domain หลายตัว สามารถชี้มายัง Hosting เดียวกันได้หรือเปล่า?

A: ได้เลย Shared Hosting ส่วนใหญ่รองรับ Addon Domain หลายตัว สามารถเพิ่มได้ตามจำนวนที่แพ็กเกจกำหนด ทุก Domain จะมี Document Root แยกกันและสามารถติดตั้ง WordPress แยกกันได้ โดยแต่ละ Domain ก็ชี้มา IP เดียวกัน แต่ cPanel จะแยก Folder ให้อัตโนมัติ