ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home สร้าง Subdomain บน DirectAdmin

สร้าง Subdomain บน DirectAdmin

Subdomain คือชื่อย่อยที่อยู่หน้าชื่อโดเมนหลัก เช่น shop.example.com, blog.example.com หรือ staging.example.com ใช้แยกเว็บไซต์หรือระบบย่อยออกจากเว็บหลัก โดยไม่ต้องจดโดเมนใหม่ บน DirectAdmin แต่ละ Subdomain จะมีโฟลเดอร์เว็บของตัวเอง จึงติดตั้ง WordPress หรือแอปอื่นแยกจากเว็บหลักได้

บทความนี้อธิบายการสร้าง Subdomain การอัปโหลดไฟล์ การตั้งค่า DNS ในกรณีที่ DNS ของโดเมนไม่ได้อยู่บนเซิร์ฟเวอร์นี้ และการออก SSL ให้ Subdomain โดยอ้างอิงหน้าจอ DirectAdmin แบบ Evolution skin

สิ่งที่ต้องเตรียม

  • บัญชี DirectAdmin ระดับ User ที่มีโดเมนหลักอยู่แล้ว
  • แพ็กเกจที่ยังเหลือโควตาจำนวน Subdomain
  • สิทธิ์แก้ไข DNS ของโดเมน หาก DNS ของโดเมนอยู่ที่อื่น เช่น Cloudflare หรือผู้ให้บริการจดโดเมน

ขั้นตอนที่ 1: สร้าง Subdomain

  1. ล็อกอิน DirectAdmin แล้วเลือกโดเมนหลักที่ต้องการจากตัวเลือกโดเมนด้านบน (กรณีบัญชีมีหลายโดเมน)
  2. ไปที่หมวด Account Manager แล้วคลิก Subdomain Management
  3. คลิก Add Subdomain
  4. ในช่อง Subdomain พิมพ์เฉพาะส่วนหน้า เช่น shop ไม่ต้องพิมพ์ชื่อโดเมนต่อท้าย
  5. กด Create (หรือ Add Subdomain ตามเวอร์ชัน)

เมื่อสร้างเสร็จ Subdomain จะปรากฏในรายการ พร้อมข้อมูลการใช้ Bandwidth และสถิติ ชื่อ Subdomain ใช้ได้เฉพาะตัวอักษรภาษาอังกฤษ ตัวเลข และขีดกลาง และไม่ควรขึ้นต้นหรือลงท้ายด้วยขีดกลาง

ขั้นตอนที่ 2: รู้จักโฟลเดอร์เว็บของ Subdomain

DirectAdmin สร้างโฟลเดอร์เว็บของ Subdomain ไว้ภายใน public_html ของโดเมนหลัก ตามโครงสร้างนี้

/home/ชื่อผู้ใช้/domains/example.com/public_html/            <- เว็บหลัก example.com
/home/ชื่อผู้ใช้/domains/example.com/public_html/shop/       <- shop.example.com

ไฟล์ที่วางใน public_html/shop/ จะแสดงที่ https://shop.example.com สิ่งที่ควรรู้จากโครงสร้างนี้

  • ไฟล์เดียวกันยังเปิดได้ผ่าน https://example.com/shop/ ด้วย หากไม่ต้องการ ให้ใส่กฎ Redirect ในไฟล์ .htaccess ของ Subdomain
  • กฎใน .htaccess ของเว็บหลักอาจมีผลต่อ Subdomain เพราะโฟลเดอร์ซ้อนอยู่ข้างใน โดยเฉพาะกฎ Rewrite ของ WordPress
  • ห้ามลบโฟลเดอร์ Subdomain ออกจาก public_html ด้วย File Manager เพราะจะทำให้ Subdomain เปิดไม่ได้ ให้ลบ Subdomain ผ่านหน้า Subdomain Management แทน

หมายเหตุ: ผู้ดูแลเซิร์ฟเวอร์บางรายตั้งค่าให้ Subdomain ใช้โฟลเดอร์แยกนอก public_html ตรวจโฟลเดอร์จริงได้จากหน้า Subdomain Management หรือเปิด File Manager ดูหลังสร้าง

ขั้นตอนที่ 3: อัปโหลดไฟล์เว็บ

  1. ไปที่ System Info & Files แล้วคลิก File Manager
  2. เปิดโฟลเดอร์ domains/example.com/public_html/shop
  3. อัปโหลดไฟล์เว็บ หรือไฟล์ .zip แล้วใช้คำสั่ง Extract ใน File Manager

ใช้ FTP ก็ได้ โดยล็อกอินด้วยบัญชี FTP หลักของ DirectAdmin แล้วเข้าไปที่ path เดียวกัน หากจะติดตั้ง WordPress ให้สร้างฐานข้อมูลแยกสำหรับ Subdomain ตามคู่มือ สร้างฐานข้อมูล MySQL บน DirectAdmin

ขั้นตอนที่ 4: ตั้งค่า DNS ของ Subdomain

กรณีแรก DNS ของโดเมนอยู่บนเซิร์ฟเวอร์ DirectAdmin นี้ (Name Server ของโดเมนชี้มาที่เซิร์ฟเวอร์นี้) DirectAdmin จะเพิ่ม A Record ของ Subdomain ให้อัตโนมัติ ไม่ต้องทำอะไรเพิ่ม ตรวจได้ที่ Account Manager > DNS Management

กรณีที่สอง DNS ของโดเมนอยู่ที่อื่น เช่น Cloudflare, ผู้ให้บริการจดโดเมน หรือ Microsoft 365 ต้องไปเพิ่ม Record ที่ผู้ดูแล DNS นั้นเอง

TypeName / HostValueTTL
AshopIP ของเซิร์ฟเวอร์ DirectAdmin3600 หรือ Auto

หากเซิร์ฟเวอร์มี IPv6 ให้เพิ่ม AAAA Record ในลักษณะเดียวกัน ความแตกต่างของ Record แต่ละชนิดอ่านได้ที่ ทำความรู้จัก DNS Record: A, AAAA, CNAME, MX, TXT และ NS

ขั้นตอนที่ 5: ออก SSL ให้ Subdomain

ใบรับรองของโดเมนหลักไม่ครอบคลุม Subdomain ที่สร้างใหม่โดยอัตโนมัติ ให้รอ DNS ของ Subdomain ใช้งานได้ก่อน แล้วทำดังนี้

  1. ไปที่ Account Manager > SSL Certificates
  2. เลือก Get automatic certificate from ACME Provider
  3. ติ๊กชื่อ shop.example.com เพิ่มในรายการ โดยยังคงติ๊กชื่อเดิมที่ใช้งานอยู่ไว้ แล้วกด Save

รายละเอียดและวิธีแก้ปัญหาดูที่ ติดตั้ง SSL ฟรี Let's Encrypt บน DirectAdmin

ตรวจสอบผลลัพธ์

  1. ตรวจว่า Subdomain ชี้มาที่ IP ของเซิร์ฟเวอร์
    nslookup shop.example.com
    ผลลัพธ์ต้องแสดง IP เดียวกับเซิร์ฟเวอร์ DirectAdmin
  2. สร้างไฟล์ทดสอบ index.html ในโฟลเดอร์ของ Subdomain แล้วเปิด http://shop.example.com ต้องเห็นเนื้อหาของไฟล์นั้น ไม่ใช่หน้าเว็บหลัก
  3. หลังออก SSL แล้ว เปิด https://shop.example.com ต้องไม่มีคำเตือนเรื่องใบรับรอง

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

เปิด Subdomain แล้วเบราว์เซอร์ขึ้นว่า Server not found

DNS ยังไม่มี Record ของ Subdomain หรือยังไม่กระจายตัว ตรวจด้วย nslookup ตามหัวข้อตรวจสอบผลลัพธ์ หากไม่มีคำตอบ ให้เพิ่ม A Record ตามขั้นตอนที่ 4 วิธีตรวจ DNS อย่างละเอียดดูที่ ตรวจสอบ DNS ด้วย nslookup และ dig

เปิด Subdomain แล้วเห็นหน้าเว็บหลักหรือหน้า Default ของเซิร์ฟเวอร์

หากเห็นหน้า Default แปลว่ายังไม่มีไฟล์ index ในโฟลเดอร์ของ Subdomain หากเห็นเว็บหลัก อาจเป็นเพราะ A Record ของ Subdomain ชี้ไปที่เซิร์ฟเวอร์อื่นซึ่งมี Wildcard หรือเพราะกฎ Rewrite ใน .htaccess ของเว็บหลักพาไป ให้ตรวจทั้งสองจุด

SSL ของ Subdomain ออกไม่ผ่าน

ส่วนใหญ่เกิดจาก DNS ยังไม่ชี้มา หรือเปิด Cloudflare Proxy ไว้ ให้รอจน nslookup ได้ IP ของเซิร์ฟเวอร์ก่อน แล้วขอใบรับรองใหม่

WordPress บนเว็บหลักทำให้ Subdomain ขึ้น 404

กฎ Rewrite ของ WordPress ใน public_html/.htaccess ส่งคำขอของโฟลเดอร์ย่อยไปให้ WordPress ให้วางไฟล์ .htaccess ในโฟลเดอร์ Subdomain ที่มีกฎของตัวเอง หรือใส่ RewriteEngine On ไว้เพื่อให้ใช้กฎชุดของโฟลเดอร์นั้นแทน

หากสร้าง Subdomain แล้วยังเปิดใช้งานไม่ได้ ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ พร้อมแจ้งชื่อ Subdomain และผลลัพธ์จากคำสั่ง nslookup

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security