ฐานความรู้

การพัฒนาในเครื่องด้วย 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      # 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 ชี้ไป) และจะไม่เก็บไว้ในโปรเจกต์ของคุณ ดังนั้นจึงไม่สามารถหลุดเข้าไปในที่เก็บโค้ดของคุณหรือในโครงสร้างไดเรกทอรีที่ 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 ของคุณเอง

ข้อมูลที่เกี่ยวข้อง

เอกสารสำหรับนักพัฒนาทั้งหมด →

ล่าสุดจากบล็อก

สิ่งที่เราเขียนเกี่ยวกับโฮสติ้ง, SEO และการดูแลเว็บไซต์ในระดับสเกลใหญ่

SEO และการสร้างลิงก์จากเลเยอร์โฮสติง: มุมมองของผู้ปฏิบัติงานในปี 2026

โฮสติ้งส่งผลต่อการจัดทำดัชนีและมูลค่าของลิงก์ (link equity) ในปี 2026 อย่างไร: การดูแลให้หน้าเว็บยังคงอยู่ในดัชนี, การตรวจสอบโดเมนเก่าก่อนที่คุณจะเริ่มพัฒนา, การสร้างลิงก์โดยไม่ทิ้งร่องรอย (footprint) และข้อเท็จจริงอย่างตรงไปตรงมาเกี่ยวกับสิ่งที่โครงสร้างพื้นฐานสามารถและไม่สามารถทำให้กับ SEO ได้

อ่านโพสต์ →

การทำให้ WordPress รวดเร็วและปลอดภัย: รายการตรวจสอบประสิทธิภาพและปลั๊กอิน

รายการตรวจสอบที่ใช้งานได้จริงสำหรับ WordPress ที่รวดเร็วและปลอดภัย: การแคชระดับเซิร์ฟเวอร์, อ็อบเจกต์แคชสำหรับแต่ละไซต์, ปลั๊กอินจำนวนหนึ่งที่คุ้มค่าแก่การใช้งาน, การอัปเดตสแต็กให้เป็นปัจจุบันอยู่เสมอ และหน้า WooCommerce ที่คุณต้องไม่แคชโดยเด็ดขาด

อ่านโพสต์ →

วิธีเลือกเว็บโฮสติ้งที่มีการจัดการในปี 2026: คู่มือสำหรับผู้ซื้อ

สิ่งที่แยกแยะระหว่างโฮสติ้งที่มีการจัดการที่ดีกับเซิร์ฟเวอร์ราคาถูกที่มีเพียงแผงควบคุมได้อย่างแท้จริง ได้แก่ การย้ายข้อมูล การสำรองข้อมูล การแยกสภาพแวดล้อม แคชที่มีประสิทธิภาพจริง และการปรับขนาดที่โปร่งใส ตลอดจนวิธีประเมินก่อนที่คุณจะตัดสินใจเลือกใช้งาน

อ่านโพสต์ →

อ่านบล็อก →

ยังติดปัญหาอยู่ใช่หรือไม่?

บริการช่วยเหลือรวมอยู่ในทุกแพลตฟอร์ม ทีมงานพร้อมให้บริการ 24 ชั่วโมงต่อวัน และคุณสามารถเขียนหาเราเป็นภาษาใดก็ได้จาก 58 ภาษาของเรา เราจะตอบกลับคุณด้วยภาษาของคุณ

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