คู่มือการใช้งาน เมนู Maintenance - (DirectAdmin Admin Level)
ตรวจงานบำรุงรักษาที่ DirectAdmin เตรียมไว้ อ่านรายงานให้ครบ และวางแผนก่อนแก้ Path, Permission หรือไฟล์ของผู้ใช้
รู้จัก Maintenance และเข้าเมนูจาก Dashboard
เมนู Maintenance ใน DirectAdmin ระดับ Admin Level อยู่ในกลุ่ม Admin Tools และใช้สำหรับตรวจงานบำรุงรักษาระบบที่ DirectAdmin เตรียมไว้ เช่น ตรวจ privilege ของฐานข้อมูลที่เสีย, ตรวจ document root ของโดเมนและซับโดเมน, ตรวจชื่อไฟล์ที่ผิดรูปแบบ UTF-8 และตรวจไฟล์ PHP legacy extension ที่อาจกลายเป็นความเสี่ยงด้าน source code disclosure ในอนาคต

เส้นทางเข้าเมนูจาก Dashboard คือ:
Admin Level > Admin Tools > Maintenance
จากหน้า Dashboard ให้ตรวจว่าด้านบนอยู่ที่ระดับ Admin แล้วดูเฉพาะกลุ่ม Admin Tools จากนั้นกดเมนู Maintenance
เมนูนี้เหมาะกับผู้ดูแลระบบที่ต้องการทำ health check หลังอัปเกรด DirectAdmin, ก่อน maintenance window, หลังย้ายบัญชีจำนวนมาก, หรือก่อนปรับ policy ของ document root และ PHP handler จุดสำคัญคือ Maintenance ไม่ใช่หน้าตรวจ resource แบบ Process Monitor และไม่ใช่หน้าสั่ง restart service แบบ System Services แต่เป็นหน้ารวมงานตรวจ/รายงาน/แก้ไขความไม่สอดคล้องของ configuration และข้อมูลที่ DirectAdmin ดูแลอยู่
คำเตือน: ถึงแม้ปุ่มตรวจสอบจะดูปลอดภัยกว่าคำสั่งที่แก้ไขระบบ แต่เมนูนี้อยู่ใน Admin Level และผลลัพธ์ที่ตามมาอาจนำไปสู่การแก้ path, symlink, privilege หรือไฟล์ของ user หลายบัญชี ก่อนกดแก้ไขใด ๆ บนเครื่อง production ต้องอ่านรายงานให้ครบและมี backup หรือแผน rollback เสมอ
สำรวจรายการตรวจสุขภาพของ Server
เมื่อเข้าเมนูแล้ว breadcrumb ด้านบนแสดง Dashboard > Maintenance โดย Dashboard เป็นลิงก์กลับหน้าแรก และ Maintenance คือหน้าปัจจุบัน ใช้ยืนยันว่ากำลังอยู่ในหน้า maintenance task ไม่ใช่หน้า System Services, System Backup หรือ cPanel Import

ส่วนหัวของหน้ามีชื่อ Maintenance และปุ่มหลักทางขวาคือ CHECK ALL พร้อมไอคอน refresh/ตรวจสอบ ปุ่มนี้ใช้สั่งตรวจทุก maintenance task ที่แสดงอยู่ในหน้าเดียวกัน โดยในการทดสอบ จากระบบตัวอย่างปุ่มนี้ทำงานเป็นการตรวจสอบและแสดงผลรายงานทันที ไม่มีหน้าต่างยืนยันก่อนเริ่มตรวจ
พื้นที่เนื้อหาแบ่งเป็น task card ทีละรายการ แต่ละ card มีส่วนประกอบซ้ำกัน:
- ชื่อ task - ชื่อการตรวจสอบ เช่น database privilege, document root, malformed file names หรือ legacy PHP file extensions
- severity label - ระดับความสำคัญของ task เช่น Medium severity หรือ Low severity แสดงอยู่มุมขวาของ card
- Task / Check Report / Fix Report - ลิงก์ลักษณะ tab/step สำหรับสลับมุมมองใน card เดียวกัน
- คำอธิบายหรือรายงาน - เนื้อหากลาง card จะเปลี่ยนตาม tab ที่เลือก เช่นคำอธิบายงานใน Task หรือผลตรวจใน Check Report
- Check server for issues - คำสั่งราย card สำหรับตรวจเฉพาะ task นั้น
ในหน้าจอตัวอย่างไม่พบ help ไอคอนข้างชื่อหน้า, ไม่พบช่อง search/filter ภายในเมนู, ไม่พบช่องเลือกสำหรับเลือก task, ไม่พบ table, ไม่พบ table column, ไม่พบ เมนู Columns และไม่พบคำสั่งประจำแถว แบบจุดสามจุด ดังนั้นงานหลักของเมนูนี้คือเลือกตรวจราย task หรือกด CHECK ALL แล้วอ่านรายงานจากแต่ละ card
อ่านระดับความสำคัญและรายงานของแต่ละงาน
มุมมอง Task คือคำอธิบายว่า task นั้นตรวจอะไรและทำไมจึงสำคัญ ลิงก์ Task จะเป็นสีเด่นเมื่อกำลังดูคำอธิบาย ส่วน Check Report และ Fix Report ในสถานะที่ยังไม่ตรวจจะเป็นสีจางกว่า เพราะยังไม่มีรายงานให้ดู

เส้นคั่นและไอคอน ลูกศรเล็กระหว่าง Task, Check Report และ Fix Report ทำหน้าที่เป็นตัวแบ่ง step ให้เห็นลำดับการทำงาน:
- Task - อ่านความหมายและผลกระทบก่อนตรวจ
- Check Report - อ่านผลหลัง DirectAdmin ตรวจ server แล้ว
- Fix Report - ดูผลหรือรายการที่เกี่ยวกับการแก้ไข หลังจากมี issue ให้แก้หรือหลังการแก้ไขเสร็จแล้ว
label Medium severity ในบัญชีตัวอย่างใช้กับ task ที่อาจเกี่ยวกับ database privilege หรือไฟล์ PHP legacy extension ซึ่งมีผลด้านความถูกต้องและความปลอดภัยมากกว่า ส่วน Low severity ใช้กับงานปรับความสอดคล้องของ document root หรือชื่อไฟล์ที่ควรตรวจ แต่โดยปกติไม่ใช่ incident เร่งด่วนเท่า Medium
ไอคอน refresh/หมุนที่ปุ่ม Check server for issues หมายถึงการสั่งตรวจ task นั้นใหม่อีกครั้ง ไม่ใช่ปุ่ม reload หน้าเฉย ๆ เมื่อกดแล้วพื้นที่กลาง card จะเปลี่ยนจากคำอธิบายเป็นรายงาน หากไม่มีปัญหาในบัญชีตัวอย่างระบบแสดงข้อความผ่านพร้อมไอคอนเครื่องหมายถูกสีเขียว
ทำความเข้าใจสิ่งที่ระบบตรวจในแต่ละรายการ
จากหน้าจอตัวอย่างแสดง maintenance task ทั้งหมด 7 รายการ ดังนี้:

| Task | Severity | สิ่งที่ตรวจ | ควรระวังอะไร |
|---|---|---|---|
| Cleanup databases privileges that are nonfunctional | Medium | ตรวจ database privileges ของ database user ที่ไม่มีอยู่แล้ว ทำให้ privilege เหล่านั้นไม่ทำงาน | ก่อน cleanup ต้องแน่ใจว่า user ที่หายไปไม่ใช่บัญชีที่กำลังจะ restore หรือกำลัง migrate กลับมา |
| Ensure all domains private document roots link to public | Low | ตรวจว่า domain ที่มี private_html ยังใช้ document root แยกจาก public_html หรือไม่ ตามแผนการรวม public/private document root |
การเปลี่ยน symlink/document root อาจกระทบเว็บที่แยก HTTPS path ไว้แบบ legacy |
| Detect malformed file names | Low | สแกน home directory ของ user เพื่อหาไฟล์ที่ชื่อไม่ใช่ UTF-8 ที่ถูกต้อง และอาจเปิดผ่าน File Manager ไม่ได้ | ชื่อไฟล์แปลกอาจเป็นไฟล์จาก migration หรือไฟล์ที่แอปสร้างไว้ ต้องตรวจเจ้าของไฟล์ก่อนลบหรือเปลี่ยนชื่อ |
| fix ~/public_html links not pointing to default domain | Low | ตรวจ link ~/public_html ที่ไม่ชี้ไป default domain ตามแนวทางใหม่ เพราะ old_public_html_link ถูกระบุว่า deprecated |
ต้องรู้ว่า user ใช้ domain หลักใดจริง โดยเฉพาะบัญชีที่มีหลายโดเมนหรือย้ายจาก server เก่า |
| Detect users having PHP files with legacy file extensions | Medium | หาไฟล์ extension เก่า เช่น *.php56, *.php70 และ extension ลักษณะเดียวกันใน home directory ของ user |
DirectAdmin เตือนว่าอนาคตไฟล์เหล่านี้อาจถูก web server มองเป็นไฟล์ปกติและอาจถูกดาวน์โหลดเป็น source code ได้ |
| Ensure all subdomains to have explicit (custom) document root configured | Low | ตรวจว่า subdomain ทุกตัวมี document root แบบ explicit ไม่ได้พึ่ง default path ภายในของ DirectAdmin | ข้อความ Note ระบุว่า task นี้ไม่ได้ย้ายไฟล์หรือเปลี่ยน document root เอง แต่ทำให้ค่าที่ใช้อยู่ถูกกำหนดไว้ชัดเจน |
| Ensure all subdomains uses same public and private document roots | Low | ตรวจ subdomain ที่ยังมี public/private document root ต่างกันตามแผนรวม public_html และ private_html |
มีลิงก์ Read more ไป changelog ของ DirectAdmin สำหรับบริบทของการเปลี่ยนแปลงนี้ |
แม้ task หลายรายการจะมี severity เป็น Low แต่ยังควรอ่านคำอธิบายใน card ก่อนเสมอ เพราะสิ่งที่ดูเป็นการจัดระเบียบเล็ก ๆ เช่น symlink หรือ document root อาจกระทบเว็บ legacy ที่ตั้งค่าไว้ไม่เหมือนค่า default ของ DirectAdmin รุ่นใหม่
ตรวจปัญหาเฉพาะรายการหรือทั้ง Server
มีสองวิธีในการตรวจ issue ในเมนูนี้:

- Check server for issues - ปุ่มท้าย card สำหรับตรวจเฉพาะ task นั้น เหมาะเมื่อกำลังสนใจปัญหาเรื่องเดียว เช่น malformed file names หรือ legacy PHP extensions
- CHECK ALL - ปุ่มด้านบนขวาสำหรับตรวจทุก task ในหน้า เหมาะกับการทำ health check รอบใหญ่ก่อนหรือหลัง maintenance window
หลังจากกด CHECK ALL ในบัญชีตัวอย่างทุก card เปลี่ยนไปที่ Check Report และแสดงผลผ่านทั้งหมด ได้แก่:
- All databases privileges are functional.
- All domains have private_html as a symlink to public_html.
- All file names are valid.
- All ~/public_html links to default domain
- No users with legacy PHP file extensions found.
- All subdomains have explicit (custom) document root.
- No wrong subdomain documentroots found.
ไอคอนเครื่องหมายถูกสีเขียวในรายงานหมายถึงผลตรวจผ่านสำหรับ task นั้นในเวลาในระบบตัวอย่างเท่านั้น ไม่ได้แปลว่า server จะไม่มีปัญหาอื่น และไม่ใช่การรับประกันว่าเว็บทุกตัวปลอดภัยจากการตั้งค่า legacy ทั้งหมด หากต้องตรวจ production ให้จดวันที่ เวลา และผลลัพธ์ไว้ประกอบ change log ของเครื่อง
ในขั้นตอนการทำงานในระบบตัวอย่างไม่พบข้อความแจ้งเตือน, หน้าต่างหรือ confirmation ก่อนเริ่มตรวจ Check server for issues หรือ CHECK ALL ดังนั้นก่อนกดบนเครื่องจริงควรถือว่าคำสั่งจะเริ่มทันที โดยเฉพาะถ้า server มี user/home directory จำนวนมาก การสแกนอาจใช้เวลาและ I/O มากกว่าหน้าตัวอย่าง
อ่านรายงานและยืนยันก่อนให้ระบบแก้ปัญหา
Fix Report ใช้ดูผลหรือรายการที่เกี่ยวกับการแก้ไขหลังจากมี issue ให้แก้ แต่ในการ การทดสอบครั้งนี้ทุก task ผ่านหมด จึงไม่พบปุ่ม apply fix, ไม่พบ ช่องสำหรับเลือกรายการ, ไม่พบตารางรายการที่จะแก้ และไม่มีหน้าต่างยืนยันสำหรับ fix คำสั่งในสถานะระบบตัวอย่างนี้

ข้อสำคัญคือ Fix Report ที่ยังไม่มีรายการให้แก้ไม่ควรถูกตีความว่าเมนูนี้ไม่มีความเสี่ยงเสมอไป หากเครื่อง production พบ issue จริง UI อาจแสดงรายการหรือคำสั่งเพิ่มเติมตามชนิดของ task นั้น ผู้ดูแลระบบควรอ่านรายงานให้ครบก่อนกดแก้ไข และไม่ควรใช้ CHECK ALL แล้วแก้ทุกอย่างต่อเนื่องโดยไม่ตรวจผลทีละรายการ
ก่อนทำ fix ใด ๆ จากเมนู Maintenance บนเครื่อง production ให้เช็กตามลำดับนี้:
- ยืนยัน task - อ่านชื่อ task และ severity ให้ชัดว่าเป็นเรื่อง database privilege, document root, filename หรือ PHP extension
- อ่าน Check Report ก่อน - ดูว่ารายงานเจอรายการใดบ้าง และเป็น user/domain/subdomain ใด
- ประเมินผลกระทบ - งานเกี่ยวกับ
public_html,private_html, document root และ symlink อาจกระทบ path ของเว็บจริง - เก็บหลักฐาน - บันทึกภาพหน้า report ก่อนแก้ เพื่อใช้ตรวจย้อนหลังหากเว็บมีอาการผิดปกติหลัง maintenance
- มี backup หรือ rollback - โดยเฉพาะก่อนแก้ไฟล์, symlink, database privilege หรือ path ของบัญชีลูกค้า
- เลือกช่วงเวลา - ทำใน maintenance window ถ้า server มีเว็บ production หรือมี user จำนวนมาก
- ตรวจหลังแก้ - กลับมากด Check server for issues ซ้ำเฉพาะ task นั้น และทดสอบเว็บหรือขั้นตอนที่เกี่ยวข้อง
ถ้าจะใช้งานอย่างปลอดภัย ใช้ Maintenance เป็นเครื่องมืออ่านและยืนยันสถานะก่อน ไม่ใช่ปุ่มแก้ทุกอย่างแบบอัตโนมัติ ถ้า report แสดง issue ที่ไม่แน่ใจ ให้ส่งภาพหน้าจอของ card นั้นพร้อมช่วงเวลาที่ตรวจให้ทีมเทคนิคพิจารณาก่อนลงมือแก้บนเครื่องจริง
ต้องการสอบถามข้อมูลเพิ่มเติม?
สามารถแอดไลน์คุยกันก่อนได้ที่ line: @PhalconHost