การพัฒนา WordPress โดยแก้ไขไฟล์บน Cloud VPS โดยตรงมีความเสี่ยงสูง หากเกิดข้อผิดพลาดจะกระทบเว็บไซต์ที่ใช้งานจริงทันที นอกจากนี้ยังมีปัญหาเรื่องเวอร์ชัน PHP, MySQL, และ Plugin ที่ต่างกันระหว่าง Local กับ Production สิ่งเหล่านี้อาจทำให้ฟีเจอร์ทำงานได้ต่าง บน Local Development Environment ที่ตรงกับ Stack บน Cloud VPS ของ de.co.th ช่วยให้คุณพัฒนาและทดสอบได้อย่างปลอดภัยและเหมือนกันในสภาพจริง ก่อน Deploy ไปยัง Production
ทำไมต้องสร้าง Local Development Environment?
Local Development Environment มีประโยชน์มากมาย:
- พัฒนาเร็วขึ้น: ไม่ต้องอัปโหลดไฟล์ทุกครั้ง จึงประหยัดเวลา
- ทดสอบอย่างปลอดภัย: ไม่กระทบเว็บจริง หากเกิดข้อผิดพลาด สามารถแก้ไขได้ง่าย
- ทำงาน Offline: หากไม่มีอินเทอร์เน็ต คุณยังสามารถพัฒนาได้
- ทดสอบ Plugin และ Theme: สามารถติดตั้งและทดสอบ Plugin หรือ Theme ใหม่โดยไม่กระทบเว็บจริง
- Version Control: สามารถใช้ Git เพื่อติดตามการเปลี่ยนแปลง
สิ่งสำคัญคือ Local Environment ควรมี Stack เดียวกับบน VPS เพื่อหลีกเลี่ยงปัญหา “Works on my machine” ซึ่งเป็นปัญหาทั่วไปเมื่อ PHP Version, MySQL Version หรือ Extension ต่างกัน
ตรวจสอบ Stack บน Cloud VPS ของ de.co.th
ก่อนสร้าง Local Environment ให้ตรวจสอบ Stack บน Cloud VPS ของคุณ:
- เวอร์ชัน PHP (เช่น 8.2, 8.1, 8.0)
- Database Server (MySQL 8.0, MariaDB 10.11 เป็นต้น)
- Web Server (Apache, Nginx)
- PHP Extensions (GD, mbstring, mysqli, curl เป็นต้น)
- WordPress Version
ข้อมูลนี้สามารถดูได้จาก Plesk Control Panel หรือโดยการเข้า SSH และรัน `php -v` และ `mysql –version`
ใช้ Docker สร้าง Local Environment
Docker เป็นเครื่องมือที่ยอดเยี่ยมในการสร้าง Local Environment ที่ตรงกับ Production สร้างไฟล์ `docker-compose.yml` ดังต่อไปนี้:
version: '3.8'
services:
wordpress:
image: wordpress:php8.2-apache
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp-content:/var/www/html/wp-content
- ./wp-plugins:/var/www/html/wp-plugins
depends_on:
- db
networks:
- wordpress-network
db:
image: mariadb:10.11
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- db_data:/var/lib/mysql
networks:
- wordpress-network
phpmyadmin:
image: phpmyadmin:latest
ports:
- "8081:80"
environment:
PMA_HOST: db
PMA_USER: wordpress
PMA_PASSWORD: wordpress
networks:
- wordpress-network
volumes:
db_data:
networks:
wordpress-network:
driver: bridge
เริ่มต้นใช้งาน Docker
ในไดเรกทอรี่ที่มีไฟล์ `docker-compose.yml` รันคำสั่งต่อไปนี้:
docker-compose up -d
รอสักครู่ให้ Container เริ่มต้นเสร็จ แล้วเปิดเบราว์เซอร์:
- WordPress: http://localhost:8080
- phpMyAdmin: http://localhost:8081
คุณสามารถติดตั้ง WordPress ได้ โดยใช้ข้อมูล Database ที่ระบุใน `docker-compose.yml`
ใช้ DDEV (ทางเลือก)
DDEV เป็นเครื่องมือที่ช่วยจัดการ Local Development Environment สำหรับ WordPress โดยเฉพาะ มันง่ายกว่า Docker และมี Configuration ที่ Smart
ติดตั้ง DDEV:
# macOS และ Linux
brew install ddev/ddev/ddev
# Windows
choco install ddev
สร้าง Project:
ddev config --project-type=wordpress --php-version=8.2
ddev start
ddev wp core download
ddev wp core install --url=https://my-wp.ddev.site --title="My WordPress" --admin_user=admin --admin_password=admin [email protected]
DDEV จะสร้าง Certificate SSL และตั้งค่า Hostname อัตโนมัติ
Sync ข้อมูลจาก Cloud VPS
หลังจากสร้าง Local Environment คุณจะต้อง Sync ข้อมูลและทรัพยากรจาก Cloud VPS:
1. ดึง Database จาก VPS
# บน VPS ผ่าน SSH
wp db export production.sql
ดาวน์โหลดไฟล์ `production.sql` มาในเครื่องของคุณ แล้วนำเข้าไปใน Local:
# บน Local
ddev wp db import production.sql
2. แก้ URL ใน Database
ต้องแก้ URL จาก Production เป็น Local:
ddev wp search-replace 'https://yourdomain.com' 'http://localhost:8080'
3. ดึง wp-content Directory
ดึงไฟล์ Plugin, Theme, และ Uploads:
scp -r user@your-vps-ip:/home/user/public_html/wp-content ./wp-content
เคล็ดลับการใช้งาน Local Development
- ใช้ WP-CLI: WP-CLI ช่วยให้จัดการ WordPress ได้ง่ายจากคำสั่ง เช่น `wp post create –post_type=post –post_title=”Test”`
- ใช้ Version Control (Git): เก็บรักษารหัสใน Git เพื่อติดตามการเปลี่ยนแปลง
- ใช้ WordPress Debugging: เปิด `WP_DEBUG = true` เพื่อดูข้อผิดพลาด ใน `wp-config.php`
- ติดตั้ง Local Backup: ใช้ Plugin เช่น UpdraftPlus หรือ BackupBuddy เพื่อสำรองข้อมูล
- เทส Email Locally: ใช้ Mailhog (รวมกับ Docker) เพื่อทดสอบส่งอีเมล
การ Deploy หลังจากทดสอบเสร็จ
หลังจากทดสอบเสร็จในสภาพแวดล้อม Local คุณสามารถ Deploy ไปยัง Cloud VPS ได้ วิธีที่ดีที่สุดคือใช้ Git:
# บน VPS
git pull origin main
wp db migrate
wp cache flush
สำหรับผู้ใช้ Cloud VPS ของ de.co.th ให้ใช้ Git Deployment ผ่าน Plesk เพื่อการ Deploy ที่ราบรื่นและปลอดภัยขึ้น
สรุป
การสร้าง Local Development Environment ด้วย Docker หรือ DDEV ที่ตรงกับ Stack บน Cloud VPS ของ de.co.th ช่วยให้คุณพัฒนา WordPress ได้อย่างปลอดภัยและมีประสิทธิภาพ ทดสอบทุกอย่างก่อน Deploy ไปยัง Production เป็นแนวปฏิบัติที่ดีสำหรับทุกนักพัฒนา ลดความเสี่ยงจากข้อผิดพลาด และเพิ่มการทำงานอย่างมีประสิทธิภาพ

