สร้าง Local Development Environment ที่เหมือน Cloud VPS ของ de.co.th

การพัฒนา 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 เป็นแนวปฏิบัติที่ดีสำหรับทุกนักพัฒนา ลดความเสี่ยงจากข้อผิดพลาด และเพิ่มการทำงานอย่างมีประสิทธิภาพ