Cơ sở tri thức

Khắc phục sự cố Zinnector®

Những lỗi người dùng thực sự gặp phải với Zinnector® CLI và cách khắc phục cho từng lỗi: spawn EINVAL trên Windows, cảnh báo EBADENGINE của npm, node-gyp yêu cầu Visual Studio trên Node 26, EPERM trong khi cài đặt, runtime không thể khởi động và cổng đang được sử dụng.

Các lỗi mà người dùng thực sự gặp phải với Zinnector® CLI, ý nghĩa của từng lỗi và cách khắc phục. Mỗi mục đều nêu chính xác đoạn văn bản bạn sẽ thấy, để bạn có thể tìm kiếm trên trang này. Nếu lỗi của bạn không có ở đây, hãy chạy lệnh bị lỗi với ZINNECTOR_DEBUG=1 và mở một issue tại github.com/Zinn-Digital/zinnector/issues kèm theo kết quả đầu ra, phiên bản node --version và hệ điều hành của bạn.

"spawn EINVAL" ngay sau khi đồng ý cài đặt runtime (Windows)

Một lỗi trong Zinnector® 0.1.0 và 0.1.1. Trên Windows, trình cài đặt runtime đã chạy npm.cmd theo tên, và Node đã từ chối khởi tạo một tệp .cmd mà không có shell kể từ bản sửa lỗi cho CVE-2024-27980 — vì vậy quá trình cài đặt bị dừng đột ngột một giây sau khi bạn trả lời Y. Đã được khắc phục trong 0.1.2: npm hiện được chạy dưới dạng node npm-cli.js, thao tác này giống nhau trên mọi nền tảng và không cần shell. Hãy chạy npm install -g zinnector@latest, sau đó chạy lại zinnector dev.

"npm WARN EBADENGINE" trong khi cài đặt, hoặc "Zinnector® needs Node 24 or newer"

Phiên bản Node của bạn cũ hơn 24. npm in cảnh báo này vì gói khai báo engines: >=24.18.1; quá trình cài đặt vẫn hoàn tất, nhưng zinnector sau đó từ chối khởi động (mã thoát 78) thay vì gặp lỗi khó hiểu ở một bước nào đó sau này. Hãy cài đặt phiên bản LTS hiện tại từ nodejs.org — winget install OpenJS.NodeJS.LTS trên Windows, brew install node@24 trên macOS — xác nhận rằng lệnh node --version in ra v24 hoặc cao hơn, và cài đặt lại Zinnector®.

"gyp ERR!", "Building from source with node-gyp", hoặc "You need to install Visual Studio"

Runtime WordPress có một mô-đun native với các bản dựng sẵn chỉ tồn tại cho Node 24 và 25. Trên phiên bản Node mới hơn (26 trở lên, tính đến tháng 9 năm 2026), trình cài đặt của nó sẽ chuyển về chế độ biên dịch từ mã nguồn, thao tác này trên một máy Windows thông thường sẽ kết thúc bằng yêu cầu cài đặt Visual Studio. Đã được khắc phục trong 0.1.2: Zinnector® phát hiện điều này trước khi tải xuống bất kỳ thứ gì và tải riêng một bản Node 24 chỉ dành cho runtime — khoảng 30 MB, được xác thực bằng mã kiểm tra (checksum) của nodejs.org — để không có gì cần phải biên dịch. Nếu bạn vẫn gặp tình trạng này sau khi nâng cấp, hãy chạy zinnector dev --reset-runtime để bản cài đặt dở dang từ trước được loại bỏ trước.

Các cảnh báo "EPERM" từ npm trong khi dọn dẹp (Windows)

Hầu như luôn do trình quét chống vi-rút hoặc trình lập chỉ mục tìm kiếm đang giữ mở một tệp bên dưới thư mục node_modules của runtime trong khi npm cố gắng xóa tệp đó. Quá trình cài đặt sẽ được thử lại từ một thư mục sạch trong lần chạy zinnector dev tiếp theo; nếu tình trạng này vẫn tiếp diễn, zinnector dev --reset-runtime sẽ xóa toàn bộ thư mục runtime trước và cài đặt lại.

"the local playground runtime could not be installed"

Thông báo bao gồm các dòng cuối cùng của chính npm và lệnh chính xác mà Zinnector® đã chạy, vì vậy bạn có thể tự chạy lệnh đó để xem toàn bộ kết quả đầu ra. Các nguyên nhân thông thường là sự cố mạng hoặc proxy — runtime được tải bằng chính npm của bạn, vì vậy npm config set proxy … và mirror của registry sẽ có hiệu lực — hoặc do bản cài đặt chưa hoàn tất trước đó mà --reset-runtime sẽ xóa sạch.

"the local playground exited before it was ready", hoặc không bao giờ sẵn sàng

Hãy chạy zinnector dev --verbose để xem kết quả đầu ra của chính runtime. Cổng đang được sử dụng là nguyên nhân phổ biến: zinnector dev --port 9401, hoặc đặt port trong zinnector.json. Đối với runtime đã cài đặt nhưng không thể khởi động: zinnector dev --reset-runtime. Lần khởi động đầu tiên cũng sẽ tải xuống chính WordPress, vì vậy trên kết nối chậm, hãy chờ vài phút; CLI sẽ đợi tối đa năm phút trước khi báo cáo hết thời gian chờ thay vì bị treo.

"this project is not a git repository" khi push

Các đợt triển khai được điều khiển từ một kho lưu trữ, vì vậy zinnector push cần một kho lưu trữ có máy chủ từ xa mà nền tảng có thể truy cập được. git init && git add -A && git commit -m initial, thêm remote GitHub hoặc GitLab của bạn, sau đó chạy zinnector link để kết nối với trang web.

Trang web có màn hình trắng sau khi triển khai

Hãy chạy zinnector check. Chín trên mười trường hợp là do sự chênh lệch phiên bản PHP — bạn đã xây dựng trên phiên bản PHP mới hơn phiên bản mà slot đang chạy — và báo cáo sẽ cho biết cần chuyển slot sang phiên bản nào bằng lệnh zinnector php <version>, hoặc cần phát triển với phiên bản nào bằng lệnh zinnector dev --php <version>. zinnector logs --error sẽ hiển thị chính lỗi nghiêm trọng (fatal error).

Liên quan

Tất cả tài liệu dành cho nhà phát triển →

Mới nhất từ blog

Những gì chúng tôi đã viết về lưu trữ web, SEO và vận hành trang web ở quy mô lớn.

SEO và xây dựng liên kết từ tầng lưu trữ: Góc nhìn của nhà vận hành năm 2026

Cách dịch vụ lưu trữ định hình việc lập chỉ mục và giá trị liên kết (link equity) vào năm 2026: giữ cho các trang luôn được lập chỉ mục, kiểm tra kỹ lưỡng các tên miền cũ trước khi xây dựng, xây dựng liên kết mà không để lại dấu vết (footprint), và một cái nhìn thẳng thắn về những gì cơ sở hạ tầng có thể và không thể làm cho SEO.

Đọc bài viết →

Giúp WordPress nhanh chóng và an toàn: Danh sách kiểm tra hiệu suất và plugin

Danh sách kiểm tra thực tế cho một trang WordPress nhanh và an toàn: lưu vào bộ nhớ đệm ở cấp độ máy chủ, bộ nhớ đệm đối tượng cho từng trang web, số ít plugin đáng sử dụng, duy trì ngăn xếp công nghệ luôn mới nhất và các trang WooCommerce mà quý vị tuyệt đối không bao giờ được lưu vào bộ nhớ đệm.

Đọc bài viết →

Cách chọn dịch vụ lưu trữ web được quản lý vào năm 2026: Hướng dẫn cho người mua

Điều thực sự tạo nên sự khác biệt giữa dịch vụ lưu trữ được quản lý tốt và một máy chủ giá rẻ có bảng điều khiển — di chuyển dữ liệu, sao lưu, cách ly, bộ nhớ đệm thực sự và khả năng mở rộng trung thực — và cách đánh giá dịch vụ đó trước khi bạn cam kết.

Đọc bài viết →

Đọc blog →

Vẫn gặp khó khăn?

Hỗ trợ được bao gồm trong mọi gói, bộ phận chăm sóc khách hàng hoạt động 24 giờ một ngày và quý khách có thể viết thư cho chúng tôi bằng bất kỳ ngôn ngữ nào trong số 58 ngôn ngữ của chúng tôi — chúng tôi sẽ trả lời quý khách bằng ngôn ngữ của quý khách.

Liên hệ hỗ trợ → Tất cả bài viết →