ฐานความรู้

การแก้ปัญหา Zinnector®

ข้อผิดพลาดที่ผู้คนมักพบจริงเมื่อใช้งาน Zinnector CLI พร้อมวิธีแก้ไขสำหรับแต่ละปัญหา: ข้อผิดพลาด spawn EINVAL บน Windows, คำเตือน EBADENGINE ของ npm, node-gyp ขอ Visual Studio บน Node 26, EPERM ระหว่างการติดตั้ง, รันไทม์ที่ไม่ยอมบูต และพอร์ตที่ถูกใช้งานอยู่

ข้อผิดพลาดที่ผู้ใช้มักพบกับ Zinnector® CLI ความหมายของแต่ละข้อ และวิธีแก้ไข รายการแต่ละรายการจะระบุข้อความจริงที่คุณจะเห็น เพื่อให้คุณสามารถค้นหาข้อความนั้นได้ในหน้านี้ หากข้อผิดพลาดของคุณไม่อยู่ที่นี่ ให้รันคำสั่งที่ล้มเหลวด้วย ZINNECTOR_DEBUG=1 และเปิดปัญหาที่ github.com/Zinn-Digital/zinnector/issues พร้อมแนบผลลัพธ์ (output) ค่า node --version และระบบปฏิบัติการของคุณ

"spawn EINVAL" หลังจากยอมรับการติดตั้งรันไทม์ (Windows)

ข้อบกพร่องใน Zinnector® 0.1.0 และ 0.1.1 บน Windows โปรแกรมติดตั้งรันไทม์เรียกใช้ npm.cmd ตามชื่อ และ Node ปฏิเสธที่จะสปอน (spawn) ไฟล์ .cmd โดยไม่มีเชลล์นับตั้งแต่มีการแก้ไข CVE-2024-27980 การติดตั้งจึงขัดข้องในหนึ่งวินาทีหลังจากที่คุณตอบ Y แก้ไขแล้วใน 0.1.2: ขณะนี้ npm ถูกเรียกใช้เป็น node npm-cli.js ซึ่งเหมือนกันในทุกแพลตฟอร์มและไม่ต้องใช้เชลล์ รัน npm install -g zinnector@latest จากนั้นรัน zinnector dev อีกครั้ง

"npm WARN EBADENGINE" ระหว่างการติดตั้ง หรือ "Zinnector® needs Node 24 or newer"

เวอร์ชัน Node ของคุณเก่ากว่าเวอร์ชัน 24 npm แสดงคำเตือนเนื่องจากแพ็กเกจประกาศ engines: >=24.18.1 การติดตั้งจะเสร็จสมบูรณ์ แต่ zinnector จะปฏิเสธที่จะเริ่มต้นทำงาน (รหัสข้อผิดพลาด 78) แทนที่จะล้มเหลวในจุดที่ทำความเข้าใจได้ยากภายหลัง ติดตั้ง LTS ปัจจุบันจาก nodejs.org — ใช้ winget install OpenJS.NodeJS.LTS บน Windows หรือ brew install node@24 บน macOS — ยืนยันว่า node --version แสดงผล v24 หรือสูงกว่า และติดตั้ง Zinnector® อีกครั้ง

"gyp ERR!", "Building from source with node-gyp" หรือ "You need to install Visual Studio"

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

คำเตือน "EPERM" จาก npm ขณะทำการล้างข้อมูล (Windows)

เกือบจะเกิดจากโปรแกรมสแกนไวรัสหรือระบบจัดทำดัชนีการค้นหา (search indexer) ที่เปิดไฟล์ค้างไว้ใต้ node_modules ของรันไทม์ ในขณะที่ npm พยายามลบไฟล์ดังกล่าว การติดตั้งจะถูกลองใหม่อีกครั้งจากไดเรกทอรีที่สะอาดใน zinnector dev ครั้งถัดไป หากยังคงเกิดขึ้น zinnector dev --reset-runtime จะลบไดเรกทอรีรันไทม์ทั้งหมดก่อนแล้วจึงติดตั้งใหม่อีกครั้ง

"the local playground runtime could not be installed"

ข้อความนี้ประกอบด้วยบรรทัดสุดท้ายของ npm เองและคำสั่งที่ Zinnector® รันจริง คุณจึงสามารถรันด้วยตนเองเพื่อดูผลลัพธ์ทั้งหมดได้ สาเหตุที่พบบ่อยคือปัญหาเครือข่ายหรือพร็อกซี รันไทม์ถูกดึงข้อมูลด้วย npm ของคุณเอง ดังนั้นคำสั่ง npm config set proxy … และรีจิสทรีมิเรอร์จึงมีผล หรืออาจเกิดจากการติดตั้งครั้งก่อนที่ยังไม่เสร็จสมบูรณ์ ซึ่ง --reset-runtime จะช่วยล้างข้อมูลเหล่านี้ให้

"the local playground exited before it was ready" หรือไม่พร้อมใช้งานเลย

รัน zinnector dev --verbose เพื่อดูผลลัพธ์ของรันไทม์เอง ปัญหาที่พบบ่อยคือพอร์ตถูกใช้งานอยู่แล้ว: ใช้ zinnector dev --port 9401 หรือกำหนดค่า port ใน zinnector.json สำหรับรันไทม์ที่ติดตั้งแล้วแต่ไม่ยอมบูต: ใช้ zinnector dev --reset-runtime การบูตครั้งแรกจะดาวน์โหลดตัว WordPress เองด้วย ดังนั้นหากการเชื่อมต่อช้า โปรดรอสักครู่ CLI จะรอสูงสุดหาทีก่อนที่จะรายงานข้อผิดพลาดหมดเวลา (timeout) แทนที่จะค้างอยู่

"this project is not a git repository" เมื่อทำการพุช (push)

การปรับใช้ (deploy) ดำเนินการจากที่เก็บข้อมูล (repository) ดังนั้น zinnector push จึงต้องใช้ที่เก็บข้อมูลที่มีรีโมทที่แพลตฟอร์มสามารถเข้าถึงได้ ใช้ git init && git add -A && git commit -m initial เพิ่มรีโมท GitHub หรือ GitLab ของคุณ จากนั้นใช้ zinnector link เพื่อเชื่อมต่อกับเว็บไซต์

เว็บไซต์เป็นสีขาวหลังจากทำการปรับใช้ (deploy)

รัน zinnector check สิบครั้งเจอเก้าครั้งมักจะเป็นช่องว่างของเวอร์ชัน PHP (คุณสร้างด้วย PHP ที่ใหม่กว่าเวอร์ชันที่สล็อตใช้งานอยู่) และรายงานจะบอกว่าควรเปลี่ยนสล็อตไปใช้เวอร์ชันใดด้วย zinnector php <version> หรือควรพัฒนาโดยเทียบกับเวอร์ชันใดด้วย zinnector dev --php <version> คำสั่ง zinnector logs --error จะแสดงข้อผิดพลาดร้ายแรง (fatal error) นั้นๆ

ที่เกี่ยวข้อง

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

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

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