ในโลกของการพัฒนาเว็บสมัยใหม่ การแยกสภาพแวดล้อม (Workspace Isolation) เป็นสิ่งสำคัญอย่างยิ่ง บทความนี้คือคู่มือเชิงลึกสำหรับนักพัฒนาที่ต้องการติดตั้ง WordPress 7.1 Workspace โดยใช้ Docker Container แยกส่วนออกจาก Central Runtime และ Shared PostgreSQL Database การติดตั้งทั้งหมดจะถูกทำให้เป็นอัตโนมัติผ่านสคริปต์คำสั่งใน Terminal ทำให้คุณได้รับสภาพแวดล้อมที่สะอาด ปลอดภัย และพร้อมใช้งาน 100%
⚙️ ข้อกำหนดเบื้องต้น (Prerequisites)
ก่อนเริ่มกระบวนการติดตั้ง คุณต้องมั่นใจว่า Service พื้นฐานเหล่านี้ทำงานและเข้าถึงได้จากเครือข่ายเดียวกัน:
- Docker & Docker Compose: ติดตั้งและทำงานได้สมบูรณ์
- เครือข่าย Docker: ต้องมีการสร้างเครือข่ายหลัก:
shared_dev_net - Runtime กลาง: ไดเรกทอรีสำหรับ PHP Runtime เวอร์ชันล่าสุด:
/Users/common/Docker/php_dev_8_5/ - Central Database: คอนเทนเนอร์ PostgreSQL หลัก:
db_postgresที่รันอยู่บนพอร์ต5432
🚀 ขั้นตอนการติดตั้งอัตโนมัติ (Terminal Workflow)
เราจะใช้สคริปต์คำสั่งเดียวเพื่อจัดการการสร้าง Workspace, การแตก Core Files, และการตั้งค่าฐานข้อมูลทั้งหมด:
- สร้าง Workspace: สร้างโฟลเดอร์สำหรับ WordPress 7.1 และเชื่อมต่อกับเครือข่าย:
mkdir wordpress_app_7_1 && docker network connect shared_dev_net wordpress_app_7_1 - Initialize Database: รันคำสั่งเพื่อสร้าง Schema และ User สำหรับ Workspace นี้โดยเฉพาะบน PostgreSQL กลาง:
SQL
CREATE USER wp_user_7_1 WITH PASSWORD 'securepass';\CREATE SCHEMA wp_schema_7_1 AUTHORIZATION wp_user_7_1;
- Deploy Core: ใช้คำสั่ง Docker Compose เพื่อรัน Container และเชื่อมต่อกับ Runtime กลาง พร้อมตั้งค่า Environment Variables ให้ชี้ไปยัง Database ใหม่:
BASH / Shell
docker-compose up -d --build --env PGHOST=db_postgres --env PGUSER=wp_user_7_1
💡 หลักการทำงานของ PostgreSQL
การใช้ PostgreSQL ในสถาปัตยกรรมนี้ช่วยให้เราสามารถใช้คุณสมบัติ Schema และ Role ได้อย่างเต็มที่ ทำให้แต่ละ Workspace มีขอบเขตข้อมูลที่ชัดเจน (Data Scoping) ไม่ปะปนกัน แม้จะแชร์ฐานข้อมูลหลัก (Shared Database) เดียวกันก็ตาม
ตัวอย่างการตรวจสอบการเชื่อมต่อที่สำเร็จ:
SQL
SELECT current_schema(); -- ควรแสดงชื่อ schema ของ Workspace ปัจจุบัน\SELECT current_user(); -- ควรแสดงชื่อ user ของ Workspace ปัจจุบัน
✅ บทสรุป
ด้วยการใช้ Docker ร่วมกับ PostgreSQL Shared Database และ Central Runtime คุณสามารถสร้างสภาพแวดล้อมการพัฒนา WordPress 7.1 ที่มีประสิทธิภาพสูงได้อย่างรวดเร็วและทำซ้ำได้ (Reproducible) การแยก Workspace ด้วย Schema และ User เฉพาะทำให้มั่นใจได้ว่าโปรเจกต์ต่างๆ จะทำงานได้อย่างอิสระแม้จะแชร์ทรัพยากรพื้นฐานเดียวกัน นี่คือแนวทางที่แนะนำสำหรับทีมพัฒนาขนาดใหญ่ที่ต้องการความยืดหยุ่นและความเสถียรสูงสุดในการทำงานกับระบบ WordPress ขนาดใหญ่