ติดตั้ง WordPress Multisite สำหรับหลายเว็บในระบบเดียว
Multisite ทำให้ WordPress หนึ่งชุดให้บริการหลายเว็บได้ โดยใช้ไฟล์ ปลั๊กอิน และธีมร่วมกัน เหมาะกับองค์กรที่มีเว็บหลายสาขา สถาบันการศึกษาที่มีเว็บหลายคณะ หรือธุรกิจที่มีหลายแบรนด์
ก่อนตัดสินใจต้องรู้ข้อจำกัด ปลั๊กอินและธีมต้องติดตั้งจากส่วนกลางเท่านั้น หากเว็บหนึ่งต้องการปลั๊กอินที่ชนกับอีกเว็บจะทำไม่ได้ และการกู้คืนเว็บเดียวจากข้อมูลสำรองยุ่งยากกว่าการติดตั้งแยกกันมาก หากเว็บแต่ละแห่งแตกต่างกันมาก การติดตั้งแยกอาจเหมาะกว่า
สิ่งที่ต้องเตรียม
- WordPress ที่ติดตั้งเรียบร้อยและยังไม่มีเนื้อหามาก
- สิทธิ์แก้ไฟล์
wp-config.phpและคอนฟิกเว็บเซิร์ฟเวอร์ - Wildcard DNS หากเลือกแบบซับโดเมน
- สำรองข้อมูลก่อนเสมอ การเปลี่ยนเป็น Multisite ย้อนกลับยาก
ขั้นตอนที่ 1: เลือกรูปแบบ
- ซับโดเมน เช่น
sale.example.comเหมาะเมื่อแต่ละเว็บเป็นหน่วยงานอิสระ ต้องตั้ง Wildcard DNS และใบรับรอง SSL แบบ Wildcard - ซับโฟลเดอร์ เช่น
example.com/sale/ตั้งค่าง่ายกว่า ใช้ใบรับรองเดิมได้ แต่ URL ยาวและแยก SEO ได้น้อยกว่า
เลือกแล้วเปลี่ยนภายหลังยากมาก ตัดสินใจให้รอบคอบตั้งแต่ต้น หากไม่แน่ใจและเว็บทั้งหมดเป็นขององค์กรเดียวกัน ซับโดเมนมักยืดหยุ่นกว่าในระยะยาว
ขั้นตอนที่ 2: เปิดโหมด Multisite
nano /var/www/example.com/wp-config.php
เพิ่มก่อน /* That's all, stop editing! */
define('WP_ALLOW_MULTISITE', true);
รีเฟรชหน้าหลังบ้าน จะเห็นเมนูใหม่ที่ Tools แล้ว Network Setup
ก่อนดำเนินการต่อ ระบบจะขอให้ปิดปลั๊กอินทั้งหมดก่อน
cd /var/www/example.com
wp plugin deactivate --all
ขั้นตอนที่ 3: ติดตั้งเครือข่าย
ในหน้า Network Setup เลือกรูปแบบที่ตัดสินใจไว้ ตั้งชื่อเครือข่ายและอีเมลผู้ดูแล แล้วกด Install
ระบบจะแสดงโค้ดสองชุดให้เพิ่มเอง ชุดแรกลงใน wp-config.php
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
ชุดที่สองลงใน .htaccess สำหรับ Apache หรือแปลงเป็นกฎของ Nginx
# Nginx สำหรับ Multisite แบบซับโฟลเดอร์
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}
sudo nginx -t && sudo systemctl reload nginx
ล็อกอินใหม่หลังบันทึก จะเห็นเมนู My Sites แล้ว Network Admin
ขั้นตอนที่ 4: ตั้ง DNS และ SSL สำหรับซับโดเมน
# Wildcard A Record
*.example.com. IN A 203.0.113.10
dig +short test.example.com
ขอใบรับรอง Wildcard ซึ่งต้องยืนยันผ่าน DNS
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
-d 'example.com' -d '*.example.com' \
--agree-tos -m [email protected]
server {
listen 443 ssl;
server_name example.com *.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
root /var/www/example.com;
# ...
}
ขั้นตอนที่ 5: เพิ่มเว็บใหม่
# ผ่าน WP-CLI ซึ่งเร็วกว่าและทำซ้ำได้
wp site create --slug=sale --title="ฝ่ายขาย" [email protected]
wp site list --fields=blog_id,url,registered
wp site list --field=url
สั่งงานกับเว็บใดเว็บหนึ่งด้วย --url
wp --url=sale.example.com option get blogname
wp --url=sale.example.com plugin list
wp site list --field=url | xargs -I% wp --url=% core update-db
ขั้นตอนที่ 6: จัดการปลั๊กอินและธีม
ใน Multisite มีสองระดับ
- Network Activate เปิดใช้กับทุกเว็บพร้อมกัน ผู้ดูแลเว็บย่อยปิดไม่ได้
- ให้สิทธิ์เปิดเอง ติดตั้งจากส่วนกลางแล้วให้แต่ละเว็บเลือกเปิดเอง
wp plugin activate wordpress-seo --network
wp plugin activate contact-form-7 --url=sale.example.com
# ธีมต้องเปิดให้ใช้ในเครือข่ายก่อน เว็บย่อยจึงจะเลือกได้
wp theme enable twentytwentyfour --network
ผู้ดูแลเว็บย่อยติดตั้งปลั๊กอินเองไม่ได้ ต้องให้ผู้ดูแลเครือข่ายติดตั้งให้ ซึ่งเป็นทั้งข้อดีด้านความปลอดภัยและข้อจำกัดด้านความคล่องตัว
ขั้นตอนที่ 7: ใช้โดเมนของตัวเองสำหรับเว็บย่อย
WordPress รุ่นใหม่รองรับในตัวแล้ว ไม่ต้องใช้ปลั๊กอิน
# ชี้ DNS ของโดเมนใหม่มาที่เซิร์ฟเวอร์เดียวกันก่อน
wp site list --fields=blog_id,url
wp db query "UPDATE wp_blogs SET domain='newbrand.co.th', path='/' WHERE blog_id=2;"
wp --url=newbrand.co.th option update siteurl 'https://newbrand.co.th'
wp --url=newbrand.co.th option update home 'https://newbrand.co.th'
เพิ่มโดเมนใหม่ใน server_name ของ Nginx และขอใบรับรองเพิ่ม
sudo certbot --nginx -d newbrand.co.th --expand
ขั้นตอนที่ 8: สำรองและกู้คืนเว็บเดียว
นี่คือจุดที่ Multisite ยุ่งยากกว่าการติดตั้งแยก เพราะข้อมูลของทุกเว็บอยู่ในฐานข้อมูลเดียวกัน
# ตารางของเว็บที่ blog_id = 2 จะขึ้นต้นด้วย wp_2_
wp db tables --all-tables | grep '^wp_2_'
# ส่งออกเฉพาะเว็บนั้น
wp db export site2.sql --tables=$(wp db tables 'wp_2_*' --all-tables --format=csv)
# ไฟล์อัปโหลดของเว็บนั้น
tar czf site2-uploads.tar.gz wp-content/uploads/sites/2
อย่าลืมว่าตาราง wp_users และ wp_usermeta ใช้ร่วมกันทั้งเครือข่าย จึงกู้แยกไม่ได้
ปัญหาที่พบบ่อย
เข้าหลังบ้านของเว็บย่อยแล้ววนกลับ
กฎ rewrite ไม่ถูกต้อง ตรวจคอนฟิกตามขั้นตอนที่ 3 และล้างคุกกี้ของเบราว์เซอร์แล้วลองใหม่
ซับโดเมนใหม่เปิดไม่ได้
ตรวจ Wildcard DNS ด้วย dig +short newsite.example.com และตรวจว่า server_name ของ Nginx มี *.example.com และใบรับรองครอบคลุม
อัปโหลดไฟล์ไม่ได้บนเว็บย่อย
ตรวจสิทธิ์ของโฟลเดอร์ wp-content/uploads/sites/ และตรวจโควตาพื้นที่ต่อเว็บที่ตั้งไว้ใน Network Settings
อยากแยกเว็บย่อยออกมาเป็นเว็บเดี่ยว
ใช้เครื่องมือส่งออกในตัวที่ Tools แล้ว Export บนเว็บย่อยนั้น แล้วนำเข้าในการติดตั้งใหม่ วิธีนี้ย้ายเนื้อหาได้แต่ไม่ย้ายการตั้งค่าของปลั๊กอิน ต้องตั้งใหม่
ต้องการโฮสติ้งที่รองรับ WordPress Multisite พร้อม SSL Wildcard ติดต่อ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี








