ปกติ Error 404 คือไม่พอบไฟล์ แค่กรณีนี้ Subdomain เรายังมีไฟล์อยู่ ไฟล์ไม่ได้หายไปไหน
DirectAdmin เป็น Control Panel ที่นิยมใช้กันอย่างแพร่หลายสำหรับการบริหารจัดการโฮสติ้ง และเว็บเซิร์ฟเวอร์ โดยเฉพาะคู่กับ OpenLiteSpeed หรือ Apache
แต่เมื่อไม่นานมานี้ เราเจอปัญหาสำคัญเกี่ยวกับ รูปแบบของ Subdomain ที่เปลี่ยนไป ทำให้เกิดปัญหา 404 Not Found และ SSL Certificate ผิดพลาด โดยไม่ได้คาดคิด
เลยอยากมาแชร์ประสบการณ์ตรง พร้อมแนวทางแก้ไขแบบละเอียดสำหรับใครที่กำลังเจอปัญหาเดียวกันนี้ครับ
1. ปัญหาที่เจอ
เมื่อก่อน DirectAdmin จะสร้าง Subdomain ในรูปแบบ:
โค้ด: เลือกทั้งหมด
/home/username/domains/maindomain.com/public_html/subdomain/
แต่ปัจจุบัน DirectAdmin (รุ่นใหม่) จะสร้าง Subdomain แบบใหม่:
โค้ด: เลือกทั้งหมด
/home/username/domains/subdomain.maindomain.com/public_html/
ทำให้...
- ซับโดเมนที่สร้างแบบเก่า (subfolder) ยังใช้งานได้ปกติ
- แต่ถ้าสร้างใหม่ จะกลายเป็นแบบแยกโดเมนทันที
- ไฟล์เว็บเก่าไม่ได้ถูกย้ายตาม ทำให้เกิด 404 Not Found
- SSL Certificate ที่ติดตั้งจะไม่ตรงกับโฟลเดอร์ที่มีไฟล์ ทำให้ SSL Error
- เข้า Subdomain แล้วเจอหน้า "Apache2 Ubuntu Default Page"
- SSL Certificate ไม่ตรง หรือไม่สามารถตรวจสอบได้ (ผิดโดเมน)
- เข้าเว็บไม่ได้ ทั้งที่ Subdomain มีไฟล์อยู่จริงในโฟลเดอร์เก่า
3. วิธีแก้ไข
มี 2 ทางเลือกหลัก ๆ:
- ปรับตามโครงสร้างใหม่ (แนะนำที่สุด)
- ย้ายไฟล์จากโฟลเดอร์เก่าไปยังโฟลเดอร์ใหม่ของ Subdomain
- ขอ SSL Certificate ใหม่สำหรับ Subdomain นั้นโดยตรง
- Restart Web Server เพื่อโหลด Config ใหม่
ตัวอย่างคำสั่ง SSH:โค้ด: เลือกทั้งหมด
mv /home/youruser/domains/maindomain.com/public_html/subdomain/* /home/youruser/domains/subdomain.maindomain.com/public_html/ chown -R youruser:youruser /home/youruser/domains/subdomain.maindomain.com/public_html/ cd /usr/local/directadmin/scripts ./letsencrypt.sh request_single subdomain.maindomain.com 4096 sudo /usr/local/lsws/bin/lswsctrl restart
- ปรับกลับไปใช้แบบเก่า (ไม่แนะนำ)
- ต้อง config Manual ให้ Subdomain กลับไปใช้โฟลเดอร์เดิม
- ยุ่งยาก และจะไม่รองรับ feature ใหม่ ๆ ของ DirectAdmin เช่น Auto SSL, HTTP/2, ALPN เป็นต้น
ถ้าใครกำลังเจอปัญหา Subdomain เข้าเว็บไม่ได้ หรือ SSL Error หลังจากสร้าง Subdomain ใหม่ใน DirectAdmin
ลองเช็กดูนะครับว่า ตอนสร้าง Subdomain นั้นโครงสร้างโฟลเดอร์เป็นแบบเก่าหรือแบบใหม่
ถ้าเป็นแบบใหม่ (โครงสร้างใหม่แยกโดเมน) ➔ อย่าลืมย้ายไฟล์และขอ SSL ใหม่ตามด้วย!
จะได้ใช้งาน Subdomain ได้อย่างสมบูรณ์ ทั้ง HTTP และ HTTPS
ปล. ถ้าใครอยากได้ Bash Script อัตโนมัติสำหรับย้ายไฟล์ + ขอ SSL + รีสตาร์ท Web Server บอกได้ครับ เดี๋ยวทำแจกให้ในบอร์ด!