DirectAdmin CustomBuild อัพเดต Apache PHP MySQL บนเซิร์ฟเวอร์ด้วยตัวเอง

ใครที่ดูแล 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 เข้าไปที่โฟลเดอร์นี้ก่อน ภายในมีส่วนประกอบสำคัญดังนี้

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 ผ่านคำสั่ง

เคล็ดลับ: การคอมไพล์ PHP หนึ่งเวอร์ชันใช้เวลาราว 10–30 นาทีแล้วแต่สเปกเครื่อง แนะนำให้รันใน screen หรือ tmux เสมอ เพื่อไม่ให้การ build ค้างกลางทางหากหลุดการเชื่อมต่อ SSH

ทำความรู้จัก options.conf ตัวเลือกสำคัญที่ต้องเข้าใจ

ไฟล์ options.conf คือสมองของ CustomBuild ทุกครั้งที่สั่ง build ระบบจะอ่านค่าจากไฟล์นี้ การแก้ไขทำได้สองแบบคือเปิดแก้ด้วย editor ตรงๆ หรือใช้คำสั่ง ./build set ซึ่งปลอดภัยกว่าเพราะระบบตรวจชื่อตัวเลือกให้ ตัวเลือกที่สำคัญที่สุดมีกลุ่มหลักดังนี้

ตัวเลือกตัวอย่างค่าความหมาย
webserverapache, nginx, nginx_apache, litespeed, openlitespeedเลือกเว็บเซิร์ฟเวอร์หลักของเครื่อง
php1_release8.3PHP เวอร์ชันหลัก (ช่องที่ 1)
php2_releasephp4_release8.2 / 8.1 / noPHP เวอร์ชันเสริมช่องที่ 2–4 ใส่ no ถ้าไม่ใช้
php1_modephp-fpm, mod_php, fastcgi, suphp, lsphpโหมดการรันของ PHP แต่ละช่อง
mysql_instmariadb หรือ mysqlเลือกค่ายฐานข้อมูล
mariadb / mysql10.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 10.11
./build set mysql_inst mariadb
./build set mariadb 10.11
./build mysql

ระวังที่สุดในหัวข้อนี้: การอัพเกรดฐานข้อมูลเป็นเส้นทางเดินหน้าอย่างเดียว การลดเวอร์ชันหรือย้ายข้ามค่าย (เช่น MySQL → MariaDB) อาจทำให้ข้อมูลไม่เข้ากัน ก่อนแตะตัวเลือกกลุ่มนี้ต้อง mysqldump ฐานข้อมูลทั้งหมดออกมาเก็บไว้ก่อนเสมอ

ข้อควรระวังก่อนสั่ง build ทุกครั้ง

CustomBuild เป็นเครื่องมือที่ทรงพลัง คำสั่งเดียวกระทบทุกเว็บบนเครื่อง จึงมีวินัยที่ควรทำก่อน build เสมอ

  1. Backup ก่อนทุกครั้ง — อย่างน้อยต้อง dump ฐานข้อมูลและสำรองไฟล์คอนฟิกสำคัญ ถ้าใช้ VPS ควรมี backup ระดับเครื่องหรือ snapshot เพิ่มอีกชั้น (บริการโฮสติ้งของ AsiaGB มีระบบสำรองข้อมูลอัตโนมัติ 2 ครั้งต่อเดือน ทุกวันที่ 1 และ 15 แต่บน VPS ที่ดูแลเอง ผู้ใช้ต้องวางแผน backup ของตัวเองด้วย)
  2. เผื่อ downtime สั้นๆ — ช่วงท้ายของการ build จะมีการรีสตาร์ตบริการ เช่น Apache หรือ PHP-FPM ทำให้เว็บสะดุดไม่กี่วินาที ควรทำนอกช่วง traffic สูง
  3. คอนฟิกที่แก้เองจะถูกเขียนทับ./build rewrite_confs จะสร้างคอนฟิกใหม่จากเทมเพลตทั้งหมด สิ่งที่เคยแก้ตรงๆ ใน httpd.conf จะหายเกลี้ยง วิธีที่ถูกต้องคือวางไฟล์ไว้ในโฟลเดอร์ custombuild/custom/ ตามโครงสร้างที่ DirectAdmin กำหนด ระบบจะหยิบไฟล์ของเราไปใช้แทนเทมเพลตทุกรอบ build
  4. ตรวจความเข้ากันได้ของ PHP — ก่อนอัพ PHP เวอร์ชันหลัก ตรวจว่าธีมและปลั๊กอินของทุกเว็บบนเครื่องรองรับ ถ้าไม่แน่ใจให้เพิ่มเวอร์ชันใหม่เป็น php2 ก่อน แล้วทยอยย้ายทีละโดเมน
  5. อ่าน output ให้จบ — ถ้า build ล้มเหลว ข้อความ error จะบอกสาเหตุ อย่ารันซ้ำแบบเดาสุ่ม

ใช้ CustomBuild ผ่านหน้าเว็บด้วย CustomBuild Plugin

สำหรับคนไม่ถนัดพิมพ์คำสั่ง DirectAdmin มี CustomBuild plugin ให้ใช้งานในระดับ Admin โดยเข้าจากหน้า DirectAdmin ด้วยบัญชี admin ที่เมนู Extra Features → CustomBuild ความสามารถหลักครอบคลุมงานประจำเกือบทั้งหมด

เบื้องหลังปุ่มต่างๆ ใน plugin ก็คือการเรียกสคริปต์ ./build ชุดเดียวกับที่รันผ่าน SSH ดังนั้นความเข้าใจเรื่องคำสั่งและ options.conf จากหัวข้อก่อนหน้ายังจำเป็นอยู่ โดยเฉพาะเวลาอ่าน log แก้ปัญหา

Best Practices การใช้ CustomBuild ให้ปลอดภัย

คำถามที่พบบ่อย (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