สร้าง WordPress Staging Site ทดสอบก่อน Deploy จริง

Staging Site คืออะไร ทำไมถึงสำคัญ

Staging site คือสำเนาของเว็บไซต์จริง (production) ที่สร้างขึ้นมาในสภาพแวดล้อมแยกต่างหาก เพื่อใช้ทดสอบการเปลี่ยนแปลงต่างๆ ก่อนที่จะนำขึ้นใช้งานจริงกับผู้ชมเว็บ

ลองนึกภาพว่าคุณมีร้านอาหาร และก่อนที่จะเปลี่ยน menu จริงให้ลูกค้าเห็น คุณทดลองเมนูใหม่กับพนักงานก่อน — staging site ทำงานในหลักการเดียวกัน

⚠️ ทำไมต้องมี Staging? เว็บ WordPress ล่มจากการ update plugin/theme ที่ขัดแย้งกันเป็นเรื่องปกติมาก Staging site ป้องกันความเสียหายกับผู้ใช้จริงได้ 100%

ประโยชน์หลักของ Staging Site

เมื่อไหร่ควรใช้ 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 ได้ง่ายด้วยคลิกเดียว เหมาะสำหรับมือใหม่

การติดตั้งและใช้งาน

  1. WordPress Dashboard → Plugins → Add New → ค้นหา "WP Staging" → Install & Activate
  2. เมนู WP Staging → Create new staging site
  3. ตั้งชื่อ staging site เช่น staging (จะสร้าง URL เป็น yourdomain.com/staging)
  4. เลือก Tables ที่ต้องการ copy (แนะนำ select all)
  5. คลิก Start Cloning → รอระบบ copy ข้อมูล

💡 WP Staging Free vs Pro: เวอร์ชันฟรีเพียงพอสำหรับการทดสอบทั่วไป เวอร์ชัน Pro เพิ่มความสามารถ push กลับ production และ auto-schedule backup

วิธีที่ 3: ใช้ Duplicator Pro

Duplicator เป็น plugin ที่นิยมใช้ทั้ง backup และสร้าง staging site มีทั้งเวอร์ชันฟรีและ Pro

ขั้นตอนหลัก

  1. ติดตั้ง Duplicator → Packages → Create New
  2. เลือก "Clone/Staging" → ตั้งค่า package
  3. Duplicator สร้างไฟล์ 2 ไฟล์: archive.zip + installer.php
  4. Upload ทั้ง 2 ไฟล์ไปยัง subdomain/subfolder ใหม่
  5. รัน 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

⚠️ ข้อควรระวัง: อย่า 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

ต้องการ WordPress Hosting พร้อมรองรับ Staging?

AsiaGB WordPress Hosting มี DirectAdmin, SSD storage, Uptime 99% รองรับการสร้าง staging subdomain ได้ทันที

ดู WordPress Hosting ราคา →

คำถามที่พบบ่อย (FAQ)

Staging site คืออะไร
Staging site คือสำเนาของเว็บจริง (production) ที่สร้างขึ้นมาเพื่อทดสอบการเปลี่ยนแปลงก่อนนำขึ้นใช้งานจริง มีฐานข้อมูลและไฟล์แยกกันจาก production โดยสมบูรณ์
ต้องมี plugin พิเศษไหมในการทำ staging site
ไม่จำเป็น สามารถทำได้ทั้งผ่าน DirectAdmin (ทำด้วยตนเอง) หรือใช้ plugin เช่น WP Staging, Duplicator ก็ได้ขึ้นอยู่กับความถนัด
Staging site มีผลต่อ SEO ไหม
ไม่มีผลต่อ SEO ของเว็บจริง หากตั้งค่าถูกต้อง โดยต้อง noindex staging site และปิดการ crawl ใน robots.txt เพื่อไม่ให้ Google index เนื้อหาซ้ำ
ควร sync staging กับ production บ่อยแค่ไหน
แนะนำ sync ก่อนทดสอบทุกครั้ง เพื่อให้ staging มีข้อมูลล่าสุดจาก production การทดสอบบน staging ที่ข้อมูลเก่าอาจทำให้ผลลัพธ์ไม่ตรงความเป็นจริง
ถ้าใช้ WordPress Hosting ของ AsiaGB ทำ staging ได้ไหม
ได้ AsiaGB Hosting รองรับ subdomain และ DirectAdmin ทำให้สร้าง staging site ได้ง่าย เพียงสร้าง subdomain เช่น staging.yourdomain.com แล้ว clone ฐานข้อมูลและไฟล์ไปยัง path ใหม่