ตั้งค่า WordPress Multisite บน Hosting

WordPress Multisite หรือ WordPress Network เป็นฟีเจอร์ที่ช่วยให้คุณบริหารจัดการเว็บไซต์หลายเว็บจาก Dashboard เดียว โดยใช้ WordPress Installation เพียงชุดเดียว แชร์ Plugin, Theme และ Database ร่วมกัน เหมาะสำหรับธุรกิจที่มีหลายแบรนด์ สำนักข่าวที่มีหลาย Section หรือนักพัฒนาที่ดูแลเว็บลูกค้าหลายเว็บ

WordPress Multisite เหมาะกับใคร

ก่อนเริ่ม: ข้อกำหนดสำหรับ Shared Hosting

ขั้นตอนที่ 1: เปิดใช้ WordPress Multisite

เพิ่ม 2 บรรทัดนี้ใน wp-config.php ก่อนบรรทัด /* That's all, stop editing! */:

define('WP_ALLOW_MULTISITE', true);

บันทึกไฟล์แล้ว Reload หน้า Dashboard จะเห็นเมนู Tools → Network Setup ปรากฏขึ้นมา

ขั้นตอนที่ 2: ตั้งค่า Network

ไปที่ Tools → Network Setup แล้วเลือกรูปแบบที่ต้องการ:

กรอกชื่อ Network Title และ Admin Email แล้วคลิก Install

ขั้นตอนที่ 3: อัพเดต wp-config.php

WordPress จะแสดง Code ที่ต้องเพิ่มใน wp-config.php ให้ Copy ไปวางก่อนบรรทัด /* That's all */:

define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); // true สำหรับ subdomain define('DOMAIN_CURRENT_SITE', 'yoursite.com'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);

ขั้นตอนที่ 4: อัพเดต .htaccess

WordPress จะแสดง .htaccess rules ที่ต้องใช้แทนค่าเดิม:

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]

ขั้นตอนที่ 5: Login ใหม่และสร้าง Site

หลัง Setup เสร็จ WordPress จะให้ Login ใหม่ จากนั้นจะเห็นเมนู My Sites ด้านบน Dashboard เพิ่ม Site ใหม่ได้ที่ My Sites → Network Admin → Sites → Add New

การจัดการ Plugin บน Multisite

Plugin ที่ติดตั้งบน Multisite มี 2 ระดับ:

ข้อควรระวังสำคัญบน Shared Hosting

ข้อควรระวัง: Multisite ใช้ Resources มากกว่า WordPress ปกติ เพราะทุก Site ใช้ PHP Process ร่วมกัน ถ้ามีเว็บมากกว่า 5 Sites แนะนำให้ตั้งค่า PHP Memory Limit เป็น 256M และพิจารณาอัพเกรดเป็น VPS 500 บาท/เดือน เพื่อ Resources ที่เพียงพอ

การจัดการ Theme บน WordPress Multisite

ระบบ Theme ใน Multisite มีความซับซ้อนกว่า Single Site เนื่องจากมีทั้ง Network Admin และ Site Admin ที่มีสิทธิ์ต่างกัน ทำความเข้าใจความสัมพันธ์นี้จะช่วยให้จัดการ Theme ได้ถูกต้องตั้งแต่ต้น

เคล็ดลับ: Child Theme บน Multisite

ถ้า Sub-site แต่ละเว็บต้องการดีไซน์ที่แตกต่างกัน แนะนำให้ใช้ Child Theme โดยสร้าง Child Theme จาก Parent Theme เดียวกัน แต่ Override CSS และ Template ในแต่ละ Child Theme ตามต้องการ วิธีนี้ทำให้อัพเดต Parent Theme ได้โดยไม่กระทบการปรับแต่งที่ทำไว้

การตั้งค่า Domain Mapping — ให้แต่ละ Sub-site มีโดเมนของตัวเอง

หนึ่งในฟีเจอร์ที่ทรงพลังที่สุดของ WordPress Multisite คือการทำ Domain Mapping ซึ่งช่วยให้แต่ละ Sub-site ใช้โดเมนของตัวเองได้ เช่น shop.yourcompany.com ก็สามารถ Serve เป็น shop.com หรือ brand1.com ได้โดยที่ยังอยู่บน Multisite เดียวกัน

ขั้นตอนการทำ Domain Mapping

  1. ติดตั้ง Plugin สำหรับ Domain Mapping เช่น WordPress MU Domain Mapping หรือใช้ฟีเจอร์ที่มีใน WordPress 4.5+ โดยตรง
  2. ตั้งค่า DNS ของโดเมนใหม่ให้ชี้มาที่ IP ของ Hosting เดียวกัน โดยเพิ่ม A Record ชี้มาที่ Server IP
  3. บน DirectAdmin ให้เพิ่ม Domain Pointer หรือ Addon Domain เพื่อให้ Server รับ Request จากโดเมนนั้น
  4. ใน Network Admin → Sites แก้ไข Site URL ของ Sub-site นั้นให้เป็นโดเมนใหม่
โครงสร้าง ตัวอย่าง URL เหมาะกับ
Sub-directory main.com/shop/ Shared Hosting ทั่วไป ตั้งค่าง่าย
Sub-domain shop.main.com แบรนด์ย่อยของบริษัทเดียวกัน
Domain Mapping shop.com (คนละโดเมน) หลายแบรนด์ที่ต้องการโดเมนแยกกัน

การปรับแต่ง PHP Settings สำหรับ WordPress Multisite

WordPress Multisite ที่มีหลาย Sub-site ต้องการการปรับแต่ง PHP Settings ที่เหมาะสมกว่า Single Site ทั่วไป เพราะทุก Site ใช้ PHP Process และ Memory ร่วมกัน การตั้งค่าที่ผิดพลาดจะทำให้เว็บช้าหรือ Error โดยไม่ทราบสาเหตุ

PHP Settings ที่แนะนำสำหรับ Multisite

ค่า PHP ค่าแนะนำ เหตุผล
memory_limit 256M Multisite โหลด Plugins ทุก Site พร้อมกัน
max_execution_time 120 Import/Export ข้อมูลหลาย Site ใช้เวลานาน
upload_max_filesize 64M รองรับไฟล์ Media และ Theme ขนาดใหญ่
post_max_size 64M ต้องมากกว่า upload_max_filesize เสมอ

บน AsiaGB Hosting ตั้งค่า PHP ได้ที่ DirectAdmin → PHP Settings หรือสร้างไฟล์ php.ini ใน public_html เพื่อ Override ค่าเฉพาะสำหรับเว็บของคุณ

wp-config.php สำหรับ Multisite ที่ควรเพิ่ม

// เพิ่มบน Multisite เพื่อ Performance define('WP_MEMORY_LIMIT', '256M'); define('WP_MAX_MEMORY_LIMIT', '512M'); // ปิด Auto Update Core เพื่อควบคุมการ Update เอง define('WP_AUTO_UPDATE_CORE', false); // ตั้งจำนวน Post Revisions เพื่อประหยัด Database define('WP_POST_REVISIONS', 5);

การ Backup และ Restore WordPress Multisite

การ Backup บน Multisite มีความซับซ้อนมากกว่า Single Site เพราะข้อมูลของทุก Sub-site อยู่ใน Database เดียวกัน แต่อยู่ใน Tables แยกกัน (แต่ละ Site มี Prefix เช่น wp_2_posts, wp_3_posts) การ Backup ที่ครบถ้วนต้องครอบคลุมทั้ง Database ทั้งหมดและไฟล์ใน wp-content

ทำไม Multisite ต้องระวังเรื่อง Backup มากกว่า Single Site

ใน Single Site ถ้า Restore ผิดพลาดจะกระทบแค่เว็บเดียว แต่ใน Multisite การ Restore Database ทั้งก้อนจะ Overwrite ข้อมูลของทุก Sub-site พร้อมกัน รวมถึงข้อมูลผู้ใช้งาน บทความ และ Settings ของทุกเว็บ ดังนั้นการวางแผน Backup Strategy ที่ดีจึงสำคัญมากตั้งแต่ต้น ไม่ใช่แค่ทำ Backup สักอันไว้เผื่อ

วิธี Backup ที่แนะนำ

กฎสำคัญ: ก่อนอัพเดต WordPress Core, Plugin หรือ Theme ใดๆ บน Multisite ต้อง Backup Database ให้เสร็จก่อนทุกครั้ง เพราะการอัพเดตที่ผิดพลาดบน Multisite ส่งผลต่อทุก Sub-site พร้อมกัน ไม่ใช่แค่เว็บเดียว ควรกำหนดตารางการ Backup อัตโนมัติอย่างน้อยสัปดาห์ละ 1 ครั้งด้วย

การเพิ่มประสิทธิภาพ WordPress Multisite ด้วย Object Cache

เมื่อ Multisite มีหลาย Sub-site การ Query Database จะเพิ่มขึ้นตามจำนวน Sub-site โดยตรง เพราะทุก Request ต้อง Load ข้อมูลของ Site นั้นๆ จาก Database การใช้ Object Cache ช่วยเก็บผลลัพธ์ที่ Query บ่อยๆ ไว้ใน Memory ทำให้ไม่ต้อง Query Database ซ้ำในทุก Request

สำหรับ Multisite บน AsiaGB Shared Hosting แนะนำใช้ Full Page Cache Plugin เป็นก้าวแรก เพราะไม่ต้องการ Configuration พิเศษและช่วยลด Load ได้ทันที หลังจากเว็บโตขึ้นและต้องการ Performance มากขึ้นให้พิจารณา Upgrade เป็น VPS เพื่อติดตั้ง Redis หรือ Memcached ได้ตามต้องการ สิ่งสำคัญคือ Object Cache ไม่ใช่แค่ของดีสำหรับเว็บที่มี Traffic สูงเท่านั้น แต่ยังช่วยลดเวลา Response ของหน้าแอดมินและ API ของ WordPress ได้อย่างเห็นได้ชัดแม้บนเว็บขนาดเล็กที่มี Sub-site 3-5 เว็บ

AsiaGB Hosting รองรับ WordPress Multisite บนทุกแผน พร้อม PHP 8.2/8.3, mod_rewrite, Inode 50,000 และ SSD Storage ที่เร็วเพียงพอสำหรับหลาย Sub-site เริ่มต้น 500 บาท/ปี

Hosting รองรับ WordPress Multisite

PHP 8.2/8.3, mod_rewrite ทุกแผน, Inode 50,000, SSD Storage เริ่มต้น 500 บาท/ปี Uptime 99%

ดูแพ็กเกจ Hosting