ฐานความรู้

การพัฒนาในเครื่องด้วย zinnector dev

วิธีที่ zinnector dev รัน WordPress จริงบนเครื่องของคุณเอง: สองรันไทม์ (WebAssembly ไม่มี Docker หรือ PHP แบบเนทีฟใน Docker), การเลือกเวอร์ชัน PHP และ WordPress, สิ่งที่ให้บริการจากโปรเจกต์ของคุณ, รันไทม์ขนาด 570 MB อยู่ที่ไหน และเกิดอะไรขึ้นบน Node 26

zinnector dev รัน WordPress จริงบนเครื่องของคุณเอง โดยให้บริการปลั๊กอินและธีมในโปรเจกต์ของคุณด้วยเวอร์ชัน PHP ที่คุณเลือก บทความนี้อธิบายรันไทม์ทั้งสองแบบที่ใช้งานได้ วิธีเลือกเวอร์ชัน สิ่งที่ให้บริการจากที่ใด และตำแหน่งที่รันไทม์อยู่บนดิสก์ เพื่อให้สิ่งที่คุณทดสอบในเครื่องตรงกับสิ่งที่คุณปรับใช้จริง

รันไทม์ทั้งสองแบบ และเหตุผลที่ทั้งคู่เป็นของจริง

Playground คือค่าเริ่มต้น WordPress Playground คอมไพล์ PHP เป็น WebAssembly และรันภายใน Node ดังนั้นแล็ปท็อปที่ไม่ได้ติดตั้งอะไรเลยนอกจาก Node จึงสามารถบูต WordPress ได้ภายในไม่กี่วินาที มี PHP ตั้งแต่ 5.2 ถึง 8.5 ให้ใช้งาน โดยมาพร้อมกับชุดส่วนขยาย PHP จำนวนเล็กน้อย (intl, redis, memcached ตามที่วัดในรุ่นบิวด์ปัจจุบัน) ซึ่งเพียงพอสำหรับงานปลั๊กอินและธีมส่วนใหญ่

Docker รันคอนเทนเนอร์ php-fpm และ MariaDB แบบเนทีฟ ซึ่งทำงานช้ากว่า ต้องใช้ Docker daemon และอิมเมจขนาดประมาณ 1.2 GB รวมถึงรองรับ PHP 7.4 ถึง 8.5 แต่จะรัน PHP แบบเนทีฟพร้อมชุดส่วนขยายที่ครบถ้วน รวมถึง imagick และ gd นี่คือคำตอบที่ตรงไปตรงมาเมื่อสิ่งที่คุณต้องทดสอบคือส่วนขยายที่บิวด์แบบ WebAssembly ไม่มี

zinnector dev                       # playground
zinnector dev --runtime docker      # native PHP + MariaDB

ระบบจะไม่สลับไปใช้ Docker โดยอัตโนมัติอย่างเงียบ ๆ นักพัฒนาที่คิดว่าตนเองกำลังใช้ WebAssembly แต่แท้จริงแล้วกำลังใช้ Docker จะได้รับคำตอบที่ผิดพลาดจากเครื่องมือที่พยายามช่วยเหลือ ดังนั้นจึงจำเป็นต้องระบุชื่อเพื่อเรียกใช้งาน

การเลือกเวอร์ชัน PHP และ WordPress

zinnector dev --php 8.1 --wp 6.7    # พัฒนาโดยใช้ชุดเวอร์ชันที่ระบุ
zinnector dev --port 9401           # เมื่อพอร์ต 9400 ถูกใช้งานอยู่
zinnector dev --no-login            # ไม่ลงชื่อเข้าใช้ wp-admin โดยอัตโนมัติ
zinnector dev --verbose             # แสดงเอาต์พุตของรันไทม์เอง

ค่าเริ่มต้นจะมาจากไฟล์ zinnector.json ในโปรเจกต์ ได้แก่ php, wordpress, runtime และ port ซึ่งคำสั่ง zinnector new จะเขียนขึ้นและคุณควรคอมมิชต์ไฟล์นี้ เพื่อให้ทุกคนในโปรเจกต์รันเวอร์ชันเดียวกัน แฟล็กบนบรรทัดคำสั่งจะมีผลเหนือกว่าไฟล์สำหรับเซสชันการทำงานนั้น

เวอร์ชันที่คุณประกาศและเวอร์ชันที่รันอยู่คือข้อมูลคนละชุดกัน zinnector dev --once จะบูตรันไทม์ แสดงค่าที่รายงานจริง เช่น เวอร์ชัน PHP เวอร์ชัน WordPress ส่วนขยายที่โหลด แล้วหยุดการทำงาน zinnector check --probe ใช้การวัดแบบเดียวกันเมื่อเปรียบเทียบโปรเจกต์ของคุณกับสล็อตโฮสติ้ง

สิ่งที่ให้บริการจากโปรเจกต์ของคุณ

รันไทม์จะเมานต์ไดเรกทอรี wp-content/plugins, wp-content/themes และ wp-content/mu-plugins ของโปรเจกต์คุณโดยตรง ดังนั้นไฟล์ที่คุณบันทึกจะมีผลทันทีในการรีโหลดครั้งถัดไป ไดเรกทอรีที่มีอยู่แต่ไม่มีเนื้อหาจริงจะถูกไม่เมานต์โดยเจตนา ไดเรกทอรี themes/ เปล่าๆ ที่เมานต์ทับธีมของรันไทม์เองจะทำให้ WordPress ไม่มีธีมเลย ซึ่งจะแสดงผลเป็นหน้าจอว่างเปล่าข้อผิดพลาด 500 แทนที่จะเป็นเว็บไซต์ของคุณ นั่นคือเหตุผลที่โครงสร้างสแคฟฟิลด์คงไดเรกทอรีเปล่าไว้ด้วยไฟล์ .gitkeep และเหตุผลที่ไดเรกทอรีเหล่านี้จะไม่ทับซ้อนกับสิ่งใดจนกว่าคุณจะใส่ธีมลงไป

ตำแหน่งที่รันไทม์อยู่

รันไทม์ WordPress จะถูกดาวน์โหลดเมื่อใช้งานครั้งแรกแทนที่จะมาพร้อมกับ CLI โดยแพ็กเกจที่บรรจุบิวด์ PHP ทั้งหมดมีขนาดประมาณ 570 MB และนักพัฒนาที่ทำหน้าที่แสดงรายชื่อเว็บไซต์เท่านั้นไม่ควรต้องแบกรับขนาดนี้ รันไทม์จะถูกเก็บไว้ในแคชของ Zinnector® เอง ได้แก่ ~/.cache/zinnector/runtimes/playground/<version> (หรือตำแหน่งที่ ZINNECTOR_CACHE_DIR ชี้ไป) และจะไม่ถูกเก็บไว้ในโปรเจกต์ของคุณ เพื่อไม่ให้หลุดเข้าไปในที่เก็บโค้ด (repository) หรือในทรีที่ zinnector push ตรวจวัด การดาวน์โหลดดำเนินการโดย npm ของคุณเอง โดยรันในฐานะ node npm-cli.js และไม่ผ่านเชลล์

เวอร์ชันรันไทม์จะถูกผูกไว้กับเวอร์ชัน CLI ดังนั้นนักพัฒนาสองคนที่ทำงานในโปรเจกต์เดียวกันจะรันบิวด์ PHP ตัวเดียวกัน คำสั่ง zinnector dev --reset-runtime จะลบรันไทม์ที่ติดตั้งไว้ออกและทำการติดตั้งใหม่ ซึ่งเป็นวิธีแก้ไขรันไทม์ที่ติดตั้งแล้วแต่ไม่ยอมบูต

บน Node 26 หรือใหม่กว่า

ตัว CLI เองสามารถรันบน Node 24 ขึ้นไปได้ อย่างไรก็ตาม โมดูลเนทีฟของรันไทม์จะมีไบนารีที่คอมไพล์ไว้ล่วงหน้าสำหรับ Node 24 และ 25 เท่านั้น (ณ เดือนกันยายน 2026) แทนที่จะคอมไพล์เอง ซึ่งบน Windows หมายถึงการต้องติดตั้ง Visual Studio ทาง Zinnector® จะดึงข้อมูล Node 24 สำหรับรันไทม์โดยเฉพาะ ซึ่งมีขนาดประมาณ 30 MB และได้รับการตรวจสอบความถูกต้องเทียบกับค่าเช็คซัมที่ nodejs.org เผยแพร่ ลงในแคชเดียวกัน ข้อความแจ้งการติดตั้งจะปรากฏขึ้นเมื่อมีการใช้งาน และไม่มีการเปลี่ยนแปลงใดๆ เกี่ยวกับ Node ของคุณเอง

เกี่ยวข้อง

ยังมีปัญหาอยู่ใช่ไหม?

รวมบริการช่วยเหลือในทุกแพลตฟอร์ม และตอบกลับด้วยภาษาของคุณเอง

ติดต่อฝ่ายสนับสนุน บทความทั้งหมด