
ใครที่ดูแล VPS หรือ Dedicated Server ที่ติดตั้ง DirectAdmin มาสักพัก น่าจะเคยสงสัยว่าจะอัพเดต PHP เป็นเวอร์ชันใหม่ เปลี่ยน MariaDB หรืออัพเกรด Apache อย่างไรโดยไม่ต้องไล่คอมไพล์เองทีละตัว คำตอบของฝั่ง DirectAdmin คือเครื่องมือที่ชื่อว่า CustomBuild ซึ่งเป็นหัวใจของการจัดการซอฟต์แวร์ทั้งชุดบนเซิร์ฟเวอร์ บทความนี้จะพาไปรู้จัก CustomBuild 2.0 ตั้งแต่แนวคิด โครงสร้างไฟล์ คำสั่งพื้นฐาน การตั้งค่า options.conf ไปจนถึงข้อควรระวังก่อนกด build จริง
ข้อควรทราบก่อนอ่านต่อ: CustomBuild ต้องรันด้วยสิทธิ์ root จึงใช้ได้เฉพาะผู้ที่เช่า VPS หรือ Dedicated Server เท่านั้น ลูกค้า Shared Hosting ไม่สามารถรันคำสั่งเหล่านี้เองได้ หากใช้โฮสติ้งของ AsiaGB แล้วต้องการเปลี่ยน PHP version ให้เลือกผ่านเมนูใน DirectAdmin UI หรือแจ้งทีม support ผ่าน ticket ได้เลย ไม่ต้องยุ่งกับ CustomBuild
CustomBuild คืออะไร ทำหน้าที่อะไรใน DirectAdmin
CustomBuild คือชุดสคริปต์จัดการซอฟต์แวร์ (software build & update tool) ที่มาพร้อมกับ DirectAdmin ทุกเครื่อง ทำหน้าที่ดาวน์โหลดซอร์สโค้ด คอมไพล์ ติดตั้ง และอัพเดตซอฟต์แวร์หลักที่เว็บเซิร์ฟเวอร์ต้องใช้ ไม่ว่าจะเป็นเว็บเซิร์ฟเวอร์ (Apache, Nginx), PHP หลายเวอร์ชัน, ฐานข้อมูล (MySQL หรือ MariaDB), ระบบอีเมล (Exim, Dovecot), phpMyAdmin, ClamAV และเครื่องมืออื่นๆ อีกจำนวนมาก โดยเวอร์ชันที่ใช้กันเป็นมาตรฐานในปัจจุบันคือ CustomBuild 2.0
จุดเด่นของ CustomBuild คือรวมการจัดการทุกอย่างไว้ในคำสั่งเดียวคือ ./build ผู้ดูแลเซิร์ฟเวอร์ไม่ต้องไปไล่หา repository หรือคอมไพล์จากซอร์สเองทีละแพ็กเกจ แค่กำหนดค่าที่ต้องการในไฟล์ options.conf แล้วสั่ง build ระบบจะจัดการดาวน์โหลดเวอร์ชันที่ถูกต้อง คอมไพล์ด้วยค่าที่เข้ากับ DirectAdmin และเขียนไฟล์คอนฟิกให้เชื่อมกับผู้ใช้ทุกคนบนเครื่องโดยอัตโนมัติ ถ้าเทียบกับฝั่ง cPanel เครื่องมือที่ทำหน้าที่ใกล้เคียงกันคือ EasyApache แต่ CustomBuild ครอบคลุมซอฟต์แวร์กว้างกว่า เพราะดูแลทั้งฐานข้อมูลและระบบอีเมลด้วย ไม่ใช่แค่ Apache กับ PHP
สรุปสั้นๆ: CustomBuild = ศูนย์กลางการติดตั้งและอัพเดตซอฟต์แวร์ทั้งหมดของเซิร์ฟเวอร์ DirectAdmin ตั้งค่าครั้งเดียวใน options.conf แล้วใช้คำสั่ง ./build จัดการทุกอย่าง
โครงสร้างโฟลเดอร์ /usr/local/directadmin/custombuild
ไฟล์ทั้งหมดของ CustomBuild อยู่ที่ /usr/local/directadmin/custombuild การทำงานทุกครั้งต้อง cd เข้าไปที่โฟลเดอร์นี้ก่อน ภายในมีส่วนประกอบสำคัญดังนี้
build— ตัวสคริปต์หลัก ใช้รันทุกคำสั่งในรูปแบบ./build <คำสั่ง>options.conf— ไฟล์ตั้งค่ากลาง กำหนดว่าจะใช้เว็บเซิร์ฟเวอร์อะไร PHP เวอร์ชันไหน โหมดอะไร ฐานข้อมูลค่ายไหนcustom/— โฟลเดอร์เก็บไฟล์คอนฟิกที่เราแก้เอง เพื่อไม่ให้ถูกเขียนทับเวลา build ใหม่ (สำคัญมาก จะอธิบายในหัวข้อข้อควรระวัง)- โฟลเดอร์ซอร์สและแคช — เก็บไฟล์ tar.gz ของซอฟต์แวร์ที่ดาวน์โหลดมา เช่น PHP, Apache เพื่อใช้คอมไพล์
- ไฟล์ข้อมูลเวอร์ชัน — รายการเวอร์ชันล่าสุดที่ DirectAdmin ปล่อยให้ใช้ อัพเดตด้วยคำสั่ง
./build update
cd /usr/local/directadmin/custombuild
ls -l
# build options.conf custom/ cache/ ...
คำสั่งพื้นฐานที่ผู้ดูแลเซิร์ฟเวอร์ต้องรู้
คำสั่งทั้งหมดรันจากในโฟลเดอร์ custombuild ด้วยสิทธิ์ root คำสั่งที่ใช้บ่อยที่สุดมีดังนี้
cd /usr/local/directadmin/custombuild
./build update # อัพเดตสคริปต์ CustomBuild + รายการเวอร์ชันล่าสุด
./build versions # ดูว่าซอฟต์แวร์ตัวไหนมีเวอร์ชันใหม่ให้อัพเดต
./build php n # คอมไพล์/อัพเดต PHP ตามค่าใน options.conf
./build apache # อัพเดต Apache
./build mysql # อัพเดต MySQL/MariaDB ตามค่าที่ตั้งไว้
./build rewrite_confs # เขียนไฟล์คอนฟิกเว็บเซิร์ฟเวอร์ใหม่ทั้งหมด
./build set <ตัวเลือก> <ค่า> # แก้ค่าใน options.conf ผ่านคำสั่ง
./build update— ควรรันเป็นคำสั่งแรกเสมอ เพื่อดึงข้อมูลเวอร์ชันล่าสุดจาก DirectAdmin ถ้าไม่รัน ข้อมูลที่./build versionsแสดงจะเป็นของเก่า./build versions— แสดงตารางเทียบเวอร์ชันที่ติดตั้งอยู่กับเวอร์ชันล่าสุดที่มีให้ ใช้ตัดสินใจว่าควรอัพเดตอะไรบ้าง./build php n— สั่งคอมไพล์ PHP ใหม่ตามค่า php*_release ใน options.conf ตัวอักษรnท้ายคำสั่งหมายถึงให้ build โดยไม่ต้องหยุดถามยืนยันระหว่างทาง./build apache/./build mysql— อัพเดตเว็บเซิร์ฟเวอร์และฐานข้อมูลตามลำดับ./build rewrite_confs— สร้างไฟล์คอนฟิก Apache/Nginx ของทุกโดเมนบนเครื่องขึ้นมาใหม่จากเทมเพลต ใช้หลังเปลี่ยนโหมด PHP หรือเมื่อคอนฟิกเพี้ยน
เคล็ดลับ: การคอมไพล์ PHP หนึ่งเวอร์ชันใช้เวลาราว 10–30 นาทีแล้วแต่สเปกเครื่อง แนะนำให้รันใน screen หรือ tmux เสมอ เพื่อไม่ให้การ build ค้างกลางทางหากหลุดการเชื่อมต่อ SSH
ทำความรู้จัก options.conf ตัวเลือกสำคัญที่ต้องเข้าใจ
ไฟล์ options.conf คือสมองของ CustomBuild ทุกครั้งที่สั่ง build ระบบจะอ่านค่าจากไฟล์นี้ การแก้ไขทำได้สองแบบคือเปิดแก้ด้วย editor ตรงๆ หรือใช้คำสั่ง ./build set ซึ่งปลอดภัยกว่าเพราะระบบตรวจชื่อตัวเลือกให้ ตัวเลือกที่สำคัญที่สุดมีกลุ่มหลักดังนี้
| ตัวเลือก | ตัวอย่างค่า | ความหมาย |
|---|---|---|
webserver | apache, nginx, nginx_apache, litespeed, openlitespeed | เลือกเว็บเซิร์ฟเวอร์หลักของเครื่อง |
php1_release | 8.3 | PHP เวอร์ชันหลัก (ช่องที่ 1) |
php2_release – php4_release | 8.2 / 8.1 / no | PHP เวอร์ชันเสริมช่องที่ 2–4 ใส่ no ถ้าไม่ใช้ |
php1_mode | php-fpm, mod_php, fastcgi, suphp, lsphp | โหมดการรันของ PHP แต่ละช่อง |
mysql_inst | mariadb หรือ mysql | เลือกค่ายฐานข้อมูล |
mariadb / mysql | 10.11 / 8.0 | เวอร์ชันของฐานข้อมูลค่ายที่เลือก |
ตัวอย่างการแก้ค่าผ่านคำสั่ง ./build set ให้ PHP ช่องแรกเป็น 8.3 แล้ว build ใหม่
cd /usr/local/directadmin/custombuild
./build set php1_release 8.3
./build php n
./build rewrite_confs
อัพเดตและติดตั้ง PHP หลายเวอร์ชันพร้อมกัน
งานที่พบบ่อยที่สุดบนเซิร์ฟเวอร์จริงคือมีหลายเว็บอยู่บนเครื่องเดียว เว็บใหม่อยากใช้ PHP 8.3 แต่เว็บเก่าบางตัวยังต้องค้างที่ 7.4 ซึ่ง CustomBuild 2.0 ออกแบบมารองรับโดยตรง โดยติดตั้ง PHP ได้สูงสุด 4 เวอร์ชันพร้อมกัน ผ่านช่อง php1_release ถึง php4_release
./build set php1_release 8.3
./build set php2_release 8.1
./build set php1_mode php-fpm
./build set php2_mode php-fpm
./build php n
./build rewrite_confs
หลัง build เสร็จ ผู้ใช้แต่ละรายจะเลือกได้เองว่าโดเมนของตัวเองจะใช้ PHP ช่องไหน ผ่านเมนู Domain Setup → PHP Version Selector ในหน้า DirectAdmin ของ user นั้นๆ โดยไม่ต้องพึ่ง root อีก นี่คือเหตุผลที่บนโฮสติ้ง DirectAdmin ลูกค้าจึงสลับ PHP version ได้เองจากหน้าเว็บ เพราะฝั่งผู้ดูแลเซิร์ฟเวอร์เตรียมเวอร์ชันไว้ให้ล่วงหน้าด้วย CustomBuild นั่นเอง อ่านวิธีใช้งานฝั่งผู้ใช้ได้ในบทความ วิธีเปลี่ยน PHP Version ใน DirectAdmin
MariaDB vs MySQL เลือกอะไรดีใน CustomBuild
CustomBuild ให้เลือกฐานข้อมูลได้สองค่ายผ่านตัวเลือก mysql_inst คือ MariaDB และ MySQL ทั้งคู่ใช้ภาษา SQL เดียวกันและรองรับแอปยอดนิยมอย่าง WordPress, Joomla ได้เหมือนกัน แนวทางการเลือกโดยทั่วไปคือ
- MariaDB — เป็นตัวเลือกยอดนิยมบนเซิร์ฟเวอร์ DirectAdmin โอเพนซอร์สเต็มรูปแบบ พัฒนาต่อเนื่อง ประสิทธิภาพดี และชุมชนผู้ใช้ฝั่ง hosting ใหญ่
- MySQL — เหมาะเมื่อแอปพลิเคชันหรือทีมพัฒนาระบุชัดว่าต้องการ MySQL แท้ เช่น ต้องใช้ฟีเจอร์เฉพาะบางอย่างของ MySQL 8
# ตัวอย่าง: ใช้ MariaDB 10.11
./build set mysql_inst mariadb
./build set mariadb 10.11
./build mysql
ระวังที่สุดในหัวข้อนี้: การอัพเกรดฐานข้อมูลเป็นเส้นทางเดินหน้าอย่างเดียว การลดเวอร์ชันหรือย้ายข้ามค่าย (เช่น MySQL → MariaDB) อาจทำให้ข้อมูลไม่เข้ากัน ก่อนแตะตัวเลือกกลุ่มนี้ต้อง mysqldump ฐานข้อมูลทั้งหมดออกมาเก็บไว้ก่อนเสมอ
ข้อควรระวังก่อนสั่ง build ทุกครั้ง
CustomBuild เป็นเครื่องมือที่ทรงพลัง คำสั่งเดียวกระทบทุกเว็บบนเครื่อง จึงมีวินัยที่ควรทำก่อน build เสมอ
- Backup ก่อนทุกครั้ง — อย่างน้อยต้อง dump ฐานข้อมูลและสำรองไฟล์คอนฟิกสำคัญ ถ้าใช้ VPS ควรมี backup ระดับเครื่องหรือ snapshot เพิ่มอีกชั้น (บริการโฮสติ้งของ AsiaGB มีระบบสำรองข้อมูลอัตโนมัติ 2 ครั้งต่อเดือน ทุกวันที่ 1 และ 15 แต่บน VPS ที่ดูแลเอง ผู้ใช้ต้องวางแผน backup ของตัวเองด้วย)
- เผื่อ downtime สั้นๆ — ช่วงท้ายของการ build จะมีการรีสตาร์ตบริการ เช่น Apache หรือ PHP-FPM ทำให้เว็บสะดุดไม่กี่วินาที ควรทำนอกช่วง traffic สูง
- คอนฟิกที่แก้เองจะถูกเขียนทับ —
./build rewrite_confsจะสร้างคอนฟิกใหม่จากเทมเพลตทั้งหมด สิ่งที่เคยแก้ตรงๆ ในhttpd.confจะหายเกลี้ยง วิธีที่ถูกต้องคือวางไฟล์ไว้ในโฟลเดอร์custombuild/custom/ตามโครงสร้างที่ DirectAdmin กำหนด ระบบจะหยิบไฟล์ของเราไปใช้แทนเทมเพลตทุกรอบ build - ตรวจความเข้ากันได้ของ PHP — ก่อนอัพ PHP เวอร์ชันหลัก ตรวจว่าธีมและปลั๊กอินของทุกเว็บบนเครื่องรองรับ ถ้าไม่แน่ใจให้เพิ่มเวอร์ชันใหม่เป็น php2 ก่อน แล้วทยอยย้ายทีละโดเมน
- อ่าน output ให้จบ — ถ้า build ล้มเหลว ข้อความ error จะบอกสาเหตุ อย่ารันซ้ำแบบเดาสุ่ม
ใช้ CustomBuild ผ่านหน้าเว็บด้วย CustomBuild Plugin
สำหรับคนไม่ถนัดพิมพ์คำสั่ง DirectAdmin มี CustomBuild plugin ให้ใช้งานในระดับ Admin โดยเข้าจากหน้า DirectAdmin ด้วยบัญชี admin ที่เมนู Extra Features → CustomBuild ความสามารถหลักครอบคลุมงานประจำเกือบทั้งหมด
- ดูรายการซอฟต์แวร์พร้อมสถานะเวอร์ชัน (เทียบเท่า
./build versions) และกดอัพเดตเป็นรายตัวได้จากหน้าเว็บ - แก้ค่าใน
options.confผ่านฟอร์ม เลือกเวอร์ชัน PHP, โหมด PHP, ค่ายฐานข้อมูลได้โดยไม่ต้องเปิด editor - ดู log ผลการ build ย้อนหลังเพื่อตรวจว่าการคอมไพล์สำเร็จหรือไม่
เบื้องหลังปุ่มต่างๆ ใน plugin ก็คือการเรียกสคริปต์ ./build ชุดเดียวกับที่รันผ่าน SSH ดังนั้นความเข้าใจเรื่องคำสั่งและ options.conf จากหัวข้อก่อนหน้ายังจำเป็นอยู่ โดยเฉพาะเวลาอ่าน log แก้ปัญหา
Best Practices การใช้ CustomBuild ให้ปลอดภัย
- รัน
./build updateก่อนเริ่มงานทุกครั้ง เพื่อให้รายการเวอร์ชันเป็นปัจจุบัน - ใช้
./build versionsตรวจภาพรวมอย่างน้อยเดือนละครั้ง อย่าปล่อยซอฟต์แวร์ค้างเวอร์ชันเก่านานๆ โดยเฉพาะ PHP ที่หมดระยะซัพพอร์ต - build งานใหญ่ใน
screen/tmuxเสมอ และทำนอกเวลา peak - เก็บทุกการแก้คอนฟิกไว้ใน
custom/อย่าแก้ไฟล์ที่ระบบ generate ตรงๆ - เปลี่ยนทีละอย่าง — อย่าอัพ PHP, สลับค่ายฐานข้อมูล และเปลี่ยนเว็บเซิร์ฟเวอร์พร้อมกันในรอบเดียว เพราะถ้าพังจะหาสาเหตุยาก
- ทดสอบเว็บหลัก (หน้าแรก, หน้า login, ระบบตะกร้า) ทันทีหลัง build เสร็จทุกครั้ง
- จดบันทึกว่าเปลี่ยนอะไร วันไหน เวอร์ชันจากอะไรเป็นอะไร เพื่อย้อนรอยได้เวลามีปัญหา
คำถามที่พบบ่อย (FAQ)
CustomBuild ใช้บน Shared Hosting ได้ไหม
ไม่ได้ CustomBuild ต้องรันด้วยสิทธิ์ root บนเซิร์ฟเวอร์เท่านั้น ผู้ใช้ Shared Hosting ไม่มีสิทธิ์เข้าถึง หากต้องการเปลี่ยน PHP version บน Shared Hosting ของ AsiaGB ให้เลือกผ่านเมนู PHP Version Selector ใน DirectAdmin หรือแจ้งทีม support ผ่าน ticket ที่ billing.in.th ได้เลย
./build update กับ ./build versions ต่างกันอย่างไร
./build update ดาวน์โหลดสคริปต์ CustomBuild และไฟล์ข้อมูลเวอร์ชันชุดล่าสุดจากเซิร์ฟเวอร์ของ DirectAdmin มาไว้ในเครื่อง ส่วน ./build versions ใช้แสดงรายการเปรียบเทียบว่าซอฟต์แวร์แต่ละตัวที่ติดตั้งอยู่เป็นเวอร์ชันใด และมีเวอร์ชันใหม่กว่าให้อัพเดตหรือไม่ ควรรัน update ก่อนเสมอเพื่อให้ข้อมูลเป็นปัจจุบัน
การ build PHP ใหม่ทำให้เว็บล่มไหม
ระหว่างคอมไพล์เว็บยังทำงานปกติเพราะระบบใช้ไบนารีตัวเดิมอยู่ จะมีช่วงสะดุดสั้นๆ ตอนท้ายที่ CustomBuild สลับไปใช้ไบนารีใหม่และรีสตาร์ตเว็บเซิร์ฟเวอร์ โดยทั่วไปไม่กี่วินาที แนะนำให้ build นอกเวลาที่มีผู้เข้าชมสูง
CustomBuild รองรับ PHP กี่เวอร์ชันพร้อมกัน
สูงสุด 4 เวอร์ชันพร้อมกัน ผ่านตัวเลือก php1_release ถึง php4_release ใน options.conf ผู้ใช้แต่ละโดเมนเลือกเวอร์ชันที่ต้องการเองได้จากหน้า Domain Setup / PHP Version Selector
แก้ httpd.conf เองแล้วหายทุกครั้งที่ build ต้องทำอย่างไร
ไฟล์คอนฟิกที่ CustomBuild สร้างจะถูกเขียนทับทุกครั้งที่รัน ./build rewrite_confs หรือ build เว็บเซิร์ฟเวอร์ใหม่ วิธีที่ถูกต้องคือวางไฟล์แก้ไขไว้ในโฟลเดอร์ custombuild/custom/ ตามโครงสร้างที่ DirectAdmin กำหนด เช่น custom/ap2/conf/extra/ ระบบจะดึงไฟล์ custom ไปใช้แทนเทมเพลตมาตรฐานทุกรอบ build
ควรเลือก MariaDB หรือ MySQL
ทั้งคู่ใช้กับเว็บทั่วไปอย่าง WordPress ได้เหมือนกัน MariaDB เป็นค่าที่นิยมบนเซิร์ฟเวอร์ DirectAdmin เพราะโอเพนซอร์สเต็มรูปแบบและอัพเดตไว ส่วน MySQL เหมาะเมื่อแอประบุว่าต้องการ MySQL โดยเฉพาะ ข้อสำคัญคือการย้ายข้ามค่ายหรือลดเวอร์ชันทำได้ยาก ต้อง dump ฐานข้อมูลก่อนเสมอ
อยากลองใช้ CustomBuild เต็มรูปแบบ ต้องมี root access
เช่า VPS Linux ของ AsiaGB เริ่มต้น 500 บาท/เดือน ได้สิทธิ์ root เต็ม ติดตั้ง DirectAdmin ปรับ PHP/Apache/MariaDB ได้ตามใจ ดิสก์ SSD, Uptime 99% ดาต้าเซ็นเตอร์ไทย ทีมงานซัพพอร์ตคนไทย 24 ชม.
ดูแพ็กเกจ VPS