
สารบัญ
Staging Site คืออะไร ทำไมถึงสำคัญ
Staging site คือสำเนาของเว็บไซต์จริง (production) ที่สร้างขึ้นมาในสภาพแวดล้อมแยกต่างหาก เพื่อใช้ทดสอบการเปลี่ยนแปลงต่างๆ ก่อนที่จะนำขึ้นใช้งานจริงกับผู้ชมเว็บ
ลองนึกภาพว่าคุณมีร้านอาหาร และก่อนที่จะเปลี่ยน menu จริงให้ลูกค้าเห็น คุณทดลองเมนูใหม่กับพนักงานก่อน — staging site ทำงานในหลักการเดียวกัน
⚠️ ทำไมต้องมี Staging? เว็บ WordPress ล่มจากการ update plugin/theme ที่ขัดแย้งกันเป็นเรื่องปกติมาก Staging site ป้องกันความเสียหายกับผู้ใช้จริงได้ 100%
ประโยชน์หลักของ Staging Site
- ทดสอบ update WordPress core, plugin, theme โดยไม่กระทบเว็บจริง
- พัฒนาฟีเจอร์ใหม่หรือ redesign หน้าเว็บอย่างปลอดภัย
- ทดสอบ speed optimization และ caching configuration
- ฝึกอบรมทีมงานบนสภาพแวดล้อมที่ใกล้เคียงของจริง
- ทดสอบ migration script หรือการเปลี่ยน theme ขนาดใหญ่
เมื่อไหร่ควรใช้ Staging Site
ไม่ใช่ทุกการเปลี่ยนแปลงที่ต้องใช้ staging แต่สิ่งต่อไปนี้ ควรทดสอบบน staging ก่อนเสมอ:
| สถานการณ์ | ระดับความเสี่ยง | แนะนำ |
|---|---|---|
| Update WordPress core version ใหม่ | สูง | ✅ ทดสอบบน staging ก่อน |
| Update plugin หลายตัวพร้อมกัน | สูง | ✅ ทดสอบบน staging ก่อน |
| เปลี่ยน theme หลัก | สูง | ✅ ทดสอบบน staging ก่อน |
| เพิ่ม custom code / functions.php | กลาง | ✅ แนะนำทดสอบ |
| ติดตั้ง plugin ใหม่ที่ซับซ้อน | กลาง | ✅ แนะนำทดสอบ |
| แก้ไขข้อความ/รูปภาพ | ต่ำ | ทำใน production ได้ |
| เพิ่มบทความใหม่ | ต่ำ | ทำใน production ได้ |
วิธีที่ 1: สร้างด้วย DirectAdmin (Manual)
วิธีนี้เหมาะสำหรับผู้ที่ใช้ AsiaGB WordPress Hosting ซึ่งมี DirectAdmin control panel โดยไม่ต้องติดตั้ง plugin เพิ่มเติม
ขั้นตอนที่ 1: สร้าง Subdomain
เข้า DirectAdmin → Domain Management → Subdomain Management → สร้าง subdomain เช่น staging.yourdomain.com ชี้ไปที่ directory ใหม่ เช่น public_html/staging
ขั้นตอนที่ 2: Copy ไฟล์ WordPress
เข้า File Manager ใน DirectAdmin → เลือกไฟล์ใน public_html ทั้งหมด → Copy ไปยัง public_html/staging
cp -r /home/username/domains/yourdomain.com/public_html/* \
/home/username/domains/yourdomain.com/public_html/staging/
ขั้นตอนที่ 3: Export และ Import Database
DirectAdmin → MySQL Management → Export database เดิม → สร้าง database ใหม่ชื่อ เช่น username_staging → Import ข้อมูลเข้า database ใหม่
ขั้นตอนที่ 4: แก้ไข wp-config.php
// แก้ใน /staging/wp-config.php
define('DB_NAME', 'username_staging');
define('DB_USER', 'username_staging');
define('DB_PASSWORD', 'new_password');
define('DB_HOST', 'localhost');
ขั้นตอนที่ 5: Update URLs ใน Database
ใช้ phpMyAdmin หรือ WP CLI อัพเดต URL จาก yourdomain.com เป็น staging.yourdomain.com
UPDATE wp_options SET option_value = 'https://staging.yourdomain.com'
WHERE option_name IN ('siteurl', 'home');
วิธีที่ 2: ใช้ Plugin WP Staging
WP Staging เป็น plugin ยอดนิยมที่ทำ staging ได้ง่ายด้วยคลิกเดียว เหมาะสำหรับมือใหม่
การติดตั้งและใช้งาน
- WordPress Dashboard → Plugins → Add New → ค้นหา "WP Staging" → Install & Activate
- เมนู WP Staging → Create new staging site
- ตั้งชื่อ staging site เช่น
staging(จะสร้าง URL เป็นyourdomain.com/staging) - เลือก Tables ที่ต้องการ copy (แนะนำ select all)
- คลิก Start Cloning → รอระบบ copy ข้อมูล
💡 WP Staging Free vs Pro: เวอร์ชันฟรีเพียงพอสำหรับการทดสอบทั่วไป เวอร์ชัน Pro เพิ่มความสามารถ push กลับ production และ auto-schedule backup
วิธีที่ 3: ใช้ Duplicator Pro
Duplicator เป็น plugin ที่นิยมใช้ทั้ง backup และสร้าง staging site มีทั้งเวอร์ชันฟรีและ Pro
ขั้นตอนหลัก
- ติดตั้ง Duplicator → Packages → Create New
- เลือก "Clone/Staging" → ตั้งค่า package
- Duplicator สร้างไฟล์ 2 ไฟล์: archive.zip + installer.php
- Upload ทั้ง 2 ไฟล์ไปยัง subdomain/subfolder ใหม่
- รัน installer.php ผ่าน browser เพื่อ setup staging
ตั้งค่า Staging Site ให้ถูกต้อง
หลังสร้าง staging site แล้ว ต้องตั้งค่าสำคัญเพื่อป้องกัน staging กระทบ SEO และ production:
1. ปิด Search Engine Indexing
WordPress Dashboard (staging) → Settings → Reading → เช็ค "Discourage search engines from indexing this site"
2. เพิ่ม noindex ใน robots.txt
User-agent: * Disallow: /
3. ปิดการส่ง Email
ติดตั้ง plugin "WP Mail SMTP" หรือ "Disable Emails" บน staging เพื่อป้องกันส่ง email จริงถึงผู้ใช้ระหว่างทดสอบ
4. ตั้ง Password Protection
DirectAdmin → Web Protection → Password Protect Directories → กำหนด password ให้ staging subdomain เพื่อกันคนภายนอกเข้าถึง
5. ปิด Plugin ที่ไม่จำเป็น
บน staging ควรปิด plugin ที่ติดต่อ external services เช่น payment gateway, CRM, email marketing เพื่อป้องกันส่งข้อมูลจริงระหว่างทดสอบ
Deploy จาก Staging ขึ้น Production
หลังทดสอบบน staging เสร็จและมั่นใจว่าทำงานถูกต้องแล้ว ขั้นตอน deploy กลับ production:
สิ่งที่ต้อง Deploy
- Code changes: theme files, plugin files, functions.php → copy ไป production
- Database changes: หาก schema เปลี่ยน ต้องรัน migration script
- Media files: ถ้าเพิ่มรูปภาพบน staging ต้อง copy ไป production ด้วย
⚠️ ข้อควรระวัง: อย่า overwrite database production ทั้งหมดด้วย staging database ถ้าเว็บ production มี content ใหม่ที่เพิ่มหลังจากสร้าง staging เพราะจะทำให้ content หาย ควร merge เฉพาะ schema changes เท่านั้น
Backup ก่อน Deploy เสมอ
AsiaGB Hosting มี backup อัตโนมัติ 2 ครั้งต่อเดือน (ทุกวันที่ 1 และ 15) แต่แนะนำให้ backup ด้วยตนเองผ่าน DirectAdmin หรือ Duplicator ก่อน deploy ทุกครั้ง
เปรียบเทียบวิธีสร้าง Staging
| วิธี | ความง่าย | ค่าใช้จ่าย | Push to Production | เหมาะกับ |
|---|---|---|---|---|
| DirectAdmin Manual | กลาง | ฟรี | Manual | ผู้ใช้มีประสบการณ์ |
| WP Staging (Free) | ง่าย | ฟรี | ไม่รองรับ | มือใหม่ ทดสอบทั่วไป |
| WP Staging (Pro) | ง่าย | ~$99/ปี | ✅ รองรับ | ทีม developer |
| Duplicator Pro | กลาง | ~$69/ปี | ✅ รองรับ | Backup + Staging |
| WP CLI (advanced) | ยาก | ฟรี | Script เอง | Developer มือโปร |
Best Practice สำหรับ WordPress Staging
- Sync staging กับ production ทุกครั้งก่อนทดสอบ ไม่ใช้ staging ที่ข้อมูลเก่า
- ทดสอบบน staging อย่างน้อย 24–48 ชั่วโมงก่อน deploy ขนาดใหญ่
- ใช้ version control (Git) เพื่อ track code changes
- Document สิ่งที่ทดสอบและผล เพื่อ reference ภายหลัง
- ลบ staging site ที่ไม่ใช้แล้วเพื่อประหยัด disk space