WordPress Multisite เป็นฟีเจอร์ที่ซ่อนอยู่ใน WordPress Core ที่ให้คุณรัน เว็บไซต์หลายไซต์จาก installation เดียว — ลดต้นทุน, จัดการง่ายขึ้น และประหยัด Hosting อย่างมาก บทความนี้จะพาคุณตั้งค่าทีละขั้นตอนจนใช้งานได้จริงบน Hosting ของ AsiaGB
WordPress Multisite คืออะไร
WordPress Multisite (เดิมเรียก WordPress MU หรือ Multi-User) คือระบบที่รวม WordPress หลายไซต์ไว้ใน ฐานข้อมูลและ Core Files ชุดเดียว โดยแต่ละไซต์มีเนื้อหา, ผู้ใช้ และการตั้งค่าของตัวเอง แต่แชร์ WordPress Core, Theme และ Plugin ร่วมกัน
| คุณสมบัติ | ไซต์เดี่ยว | Multisite Network |
|---|---|---|
| จำนวน WordPress | 1 ต่อโดเมน | 1 รัน N ไซต์ |
| Database | แยกกัน | ร่วมกัน (ต่างตาราง) |
| Plugin/Theme | ติดตั้งแยก | ติดตั้งที่เดียว |
| Update WordPress | ต้อง update ทุกไซต์ | Update ครั้งเดียว |
| เหมาะกับ | เว็บเดียว | หลายแบรนด์/ภาษา |
เมื่อไหรควรใช้ Multisite
- เว็บหลายภาษา — site.com (TH), site-en.com (EN), site-zh.com (ZH)
- หลาย Brand ในองค์กรเดียว — แต่ละ Brand มีหน้าตาต่างกัน
- School / Franchise — แต่ละสาขามีเว็บย่อยของตัวเอง
- ลด Cost — ใช้ Hosting แค่ Account เดียวแทนหลาย Account
- ทีมเดียว ดูแลหลายเว็บ — Admin จัดการจาก Dashboard เดียว
ถ้าแต่ละไซต์ต้องการ WordPress Version ต่างกัน, ใช้ Server ต่าง Region หรือต้องการ Isolate ความเสี่ยงอย่างเต็มที่ — ควรใช้ Installation แยกกันดีกว่า
ข้อกำหนดก่อนเริ่มตั้งค่า
- WordPress 3.0+ (Multisite รวมเข้ามาแล้ว)
- PHP 7.4+ (แนะนำ 8.1+)
- Apache
mod_rewriteเปิดใช้งาน - สิทธิ์แก้ไข
wp-config.phpและ.htaccess - ถ้าใช้ Subdomain: Wildcard DNS Record (
*.domain.com) - WordPress ติดตั้งในโฟลเดอร์ Root (ไม่ใช่ subfolder)
- ปิด Plugin ทั้งหมดก่อนเปิด Multisite
Hosting ของ AsiaGB ใช้ DirectAdmin พร้อม Apache mod_rewrite ที่เปิดอยู่แล้ว รองรับทั้ง Subdomain และ Subdirectory Multisite ครับ
ขั้นตอนที่ 1 — เปิดใช้งาน Multisite
Backup ไฟล์และ Database ก่อนเปิด Multisite เสมอ — ถ้าพังยังกลับมาได้
ไปที่ Plugins → Installed Plugins → เลือกทั้งหมด → Deactivate
เพิ่มบรรทัดนี้ ก่อน บรรทัด /* That's all, stop editing! */
/* Enable WordPress Multisite */
define( 'WP_ALLOW_MULTISITE', true );
หลังบันทึก wp-config.php ให้ Refresh หน้า Admin แล้วไปที่ Tools → Network Setup
ขั้นตอนที่ 2 — เลือกประเภท Network
WordPress Multisite รองรับ 2 โครงสร้าง URL:
| ประเภท | URL ตัวอย่าง | ข้อดี | ข้อเสีย |
|---|---|---|---|
| Subdomain | site1.example.com | ดูแยกอิสระ, SEO แยก | ต้องการ Wildcard DNS |
| Subdirectory | example.com/site1/ | ตั้งค่าง่ายกว่า | Share Domain Authority |
Subdirectory ตั้งค่าง่ายกว่า ไม่ต้องการ Wildcard DNS เหมาะสำหรับเว็บในองค์กรเดียวกัน เช่น example.com/en/, example.com/store/
หลังเลือกแล้วกด Install — WordPress จะแสดงโค้ดที่ต้องเพิ่มใน wp-config.php และ .htaccess
ขั้นตอนที่ 3 — อัปเดต wp-config.php และ .htaccess
คัดลอกโค้ดที่ WordPress แสดงให้แทนที่ในไฟล์ ตัวอย่างสำหรับ Subdirectory:
// wp-config.php — เพิ่มหลัง WP_ALLOW_MULTISITE
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
# .htaccess — แทนที่ block WordPress เดิม
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
ขั้นตอนที่ 4 — เข้า Network Admin
หลัง save ทั้งสองไฟล์แล้ว Login ใหม่ คุณจะเห็น My Sites → Network Admin ใน Admin Bar — นี่คือ Dashboard หลักสำหรับจัดการทั้ง Network
ขั้นตอนที่ 5 — สร้าง Subsite
- Site Address — URL ของ Subsite (subdirectory path หรือ subdomain prefix)
- Site Title — ชื่อเว็บ
- Admin Email — Email ผู้ดูแล Subsite นั้น
Domain Mapping — ผูกโดเมนแยกกับ Subsite
ถ้าต้องการให้ Subsite ใช้โดเมนอิสระ (เช่น brand2.com แทน example.com/brand2/) ทำได้โดย:
- เพิ่ม A Record ของ brand2.com ชี้ IP Hosting ใน DNS
- เพิ่ม Addon Domain ใน DirectAdmin (Domain Management → Add Domain)
- ไปที่ Network Admin → Sites → แก้ไข Subsite นั้น
- เปลี่ยน Site Address (URL) เป็น
https://brand2.com - รอ DNS Propagate (10–30 นาที)
ถ้าต้องการจัดการ Domain Mapping แบบ Advanced แนะนำ Plugin Mercator หรือ WordPress MU Domain Mapping ซึ่งรองรับ SSL Let's Encrypt สำหรับแต่ละโดเมนด้วย
การจัดการ Plugin และ Theme ใน Network
ใน Multisite มี 2 ระดับในการ Activate Plugin:
| ระดับ | ใครทำ | ผลลัพธ์ |
|---|---|---|
| Network Activate | Super Admin | Plugin เปิดทุก Subsite บังคับ |
| Site Activate | Site Admin | Plugin เปิดเฉพาะ Subsite นั้น |
| Network Deactivate | Super Admin | ซ่อน Plugin จากทุก Subsite |
Theme ก็เช่นกัน — Super Admin ต้อง Network Enable Theme ก่อน Site Admin ถึงจะใช้ได้
User Roles ใน Multisite Network
| Role | สิทธิ์ |
|---|---|
| Super Admin | จัดการทั้ง Network — เพิ่ม/ลบ Site, ติดตั้ง Plugin/Theme, แก้ Network Settings |
| Administrator | ดูแล Subsite ของตัวเองเท่านั้น |
| Editor/Author/etc. | สิทธิ์ปกติเฉพาะ Subsite |
Tips ประสิทธิภาพ Multisite
- ใช้ Object Cache — Redis หรือ Memcached ลด Database Queries อย่างมาก
- CDN สำหรับ Media — ถ้า Subsite หลายไซต์มีรูปเยอะ ให้ Offload ไป CDN
- Table Prefix แยก — WordPress สร้างให้อัตโนมัติ (wp_2_, wp_3_, ...) ไม่ต้องทำเอง
- จำกัด Upload Size — Network Admin → Network Settings → Max upload file size
- WP-Cron แบบ Real Cron — ใน Multisite WP-Cron ถูก trigger บ่อยขึ้น ควรปิด WP-Cron และใช้ Server Cron แทน
// wp-config.php — ปิด WP-Cron ใช้ Server Cron แทน
define( 'DISABLE_WP_CRON', true );
Backup WordPress Multisite
การ Backup Multisite ต้องครอบคลุมทั้ง:
- Database ทั้งหมด — Tables ของทุก Subsite อยู่ใน Database เดียวกัน
- wp-content/uploads/sites/ — Media ของแต่ละ Subsite แยกอยู่ใน Folder ย่อย
- wp-config.php — มี Network Config ที่สำคัญ
AsiaGB Hosting มี Automated Backup 2 ครั้งต่อเดือน (วันที่ 1 และ 15) เป็น Safety Net แต่แนะนำให้ Backup เองบ่อยกว่านั้น โดยเฉพาะก่อน Update WordPress Core
UpdraftPlus (Pro) รองรับ Multisite Network ได้ดีที่สุด สามารถ Backup ทั้ง Network ครั้งเดียว และ Restore เป็น Network หรือแยก Subsite ออกมาได้
การแก้ปัญหาที่พบบ่อย
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| Subsite 404 หลังสร้าง | .htaccess ไม่ถูกต้อง | ตรวจว่าคัดลอก htaccess block ครบ |
| Subdomain ไม่ work | ขาด Wildcard DNS | เพิ่ม *.domain.com A Record |
| Plugin ไม่เห็นใน Subsite | ยังไม่ได้ Network Enable | Network Admin → Plugins → Network Activate |
| Upload ไม่ได้ | ขาด Permission ใน sites/ folder | chmod 755 wp-content/uploads/sites/ |
| Super Admin role หาย | wp-config.php ไม่ครบ | ตรวจ MULTISITE constant ใน wp-config.php |