zinnector dev ನಿಮ್ಮ ಸ್ವಂತ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ನೈಜ WordPress ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ, ನೀವು ಆಯ್ಕೆಮಾಡುವ PHP ಆವೃತ್ತಿಯೊಂದಿಗೆ, ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ನಲ್ಲಿರುವ ಪ್ಲಗಿನ್ಗಳು ಮತ್ತು ಥೀಮ್ಗಳನ್ನು ಸರ್ವ್ ಮಾಡುತ್ತದೆ. ಇದು ಬಳಸಬಹುದಾದ ಎರಡು ರನ್ಟೈಮ್ಗಳು, ಆವೃತ್ತಿಗಳನ್ನು ಹೇಗೆ ಆರಿಸುವುದು, ಎಲ್ಲಿಂದ ಏನು ಸರ್ವ್ ಆಗುತ್ತದೆ, ಮತ್ತು ರನ್ಟೈಮ್ ಡಿಸ್ಕ್ನಲ್ಲಿ ಎಲ್ಲಿ ನೆಲೆಸಿರುತ್ತದೆ ಎಂಬುದನ್ನು ಈ ಲೇಖನವು ವಿವರಿಸುತ್ತದೆ — ಇದರಿಂದಾಗಿ ನೀವು ಸ್ಥಳೀಯವಾಗಿ ಪರೀಕ್ಷಿಸುವುದನ್ನೇ ನಿಯೋಜಿಸುತ್ತೀರಿ (deploy).
ಎರಡು ರನ್ಟೈಮ್ಗಳು, ಮತ್ತು ಎರಡೂ ಏಕೆ ನೈಜವಾಗಿವೆ
Playground ಪೂರ್ವನಿಯೋಜಿತವಾಗಿದೆ (default). WordPress Playground PHP ಅನ್ನು WebAssembly ಗೆ ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು Node ಒಳಗೆ ರನ್ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ Node ಹೊರತುಪಡಿಸಿ ಬೇರೇನೂ ಇನ್ಸ್ಟಾಲ್ ಆಗಿರದ ಲ್ಯಾಪ್ಟಾಪ್ ಕೆಲವೇ ಸೆಕೆಂಡುಗಳಲ್ಲಿ WordPress ಅನ್ನು ಬೂಟ್ ಮಾಡುತ್ತದೆ. 5.2 ರಿಂದ 8.5 ರವರೆಗಿನ ಯಾವುದೇ PHP ಲಭ್ಯವಿದೆ. ಇದು PHP ವಿಸ್ತರಣೆಗಳ (extensions) ಒಂದು ಸಣ್ಣ ಸೆಟ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ (ಪ್ರಸ್ತುತ ಬಿಲ್ಡ್ನಲ್ಲಿ ಅಳತೆ ಮಾಡಿದಂತೆ intl, redis, memcached), ಇದು ಹೆಚ್ಚಿನ ಪ್ಲಗಿನ್ ಮತ್ತು ಥೀಮ್ ಕೆಲಸಗಳಿಗೆ ಸಾಕಾಗುತ್ತದೆ.
Docker ಸ್ಥಳೀಯ (native) php-fpm ಮತ್ತು MariaDB ಕಂಟೇನರ್ಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ಇದು ನಿಧಾನವಾಗಿರುತ್ತದೆ, Docker ಡೀಮನ್ ಮತ್ತು ಸುಮಾರು 1.2 GB ಇಮೇಜ್ಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ, ಮತ್ತು PHP 7.4 ರಿಂದ 8.5 ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ — ಆದರೆ ಇದು imagick ಮತ್ತು gd ಸೇರಿದಂತೆ ಸಂಪೂರ್ಣ ವಿಸ್ತರಣೆಗಳ ಸೆಟ್ನೊಂದಿಗೆ ನೇಟಿವ್ PHP ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ನೀವು ಪರೀಕ್ಷಿಸಬೇಕಾದದ್ದು WebAssembly ಬಿಲ್ಡ್ ಹೊಂದಿರದ ವಿಸ್ತರಣೆಯಾಗಿದ್ದಾಗ ಇದು ಸೂಕ್ತ ಪರಿಹಾರವಾಗಿದೆ.
zinnector dev # playground
zinnector dev --runtime docker # native PHP + MariaDB
Docker ಅನ್ನು ಎಂದಿಗೂ ಸದ್ದಿಲ್ಲದೆ ಫಾಲ್ಬ್ಯಾಕ್ ಆಗಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ. ತಾವು WebAssembly ನಲ್ಲಿದ್ದೇವೆ ಎಂದು ಭಾವಿಸಿ ವಾಸ್ತವವಾಗಿ Docker ನಲ್ಲಿರುವ ಡೆವಲಪರ್ಗೆ ಸಹಾಯ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುವ ಉಪಕರಣವೊಂದು ತಪ್ಪು ಉತ್ತರವನ್ನು ನೀಡಿದಂತಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ಹೆಸರಿನ ಮೂಲಕವೇ ವಿನಂತಿಸಬೇಕಾಗುತ್ತದೆ.
PHP ಮತ್ತು WordPress ಆವೃತ್ತಿಗಳನ್ನು ಆರಿಸುವುದು
zinnector dev --php 8.1 --wp 6.7 # develop against a specific pair
zinnector dev --port 9401 # when 9400 is taken
zinnector dev --no-login # do not sign in to wp-admin automatically
zinnector dev --verbose # show the runtime's own output
ಪೂರ್ವನಿಯೋಜಿತ ಮೌಲ್ಯಗಳು ಪ್ರಾಜೆಕ್ಟ್ನಲ್ಲಿರುವ 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) ಆದ ~/.cache/zinnector/runtimes/playground/<version> ನಲ್ಲಿ (ಅಥವಾ ZINNECTOR_CACHE_DIR ಸೂಚಿಸುವ ಸ್ಥಳದಲ್ಲಿ) ಇರಿಸಲಾಗುತ್ತದೆ, ಎಂದಿಗೂ ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ನಲ್ಲಿ ಇರಿಸಲಾಗುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಇದು ನಿಮ್ಮ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಅಥವಾ zinnector push ಅಳೆಯುವ ಟ್ರೀಯಲ್ಲಿ ಸೇರಲು ಸಾಧ್ಯವಿಲ್ಲ. ಡೌನ್ಲೋಡ್ ಅನ್ನು ನಿಮ್ಮ ಸ್ವಂತ npm ಮೂಲಕ node npm-cli.js ಆಗಿ ರನ್ ಮಾಡುವ ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ — ಎಂದಿಗೂ ಶೆಲ್ ಮೂಲಕ ಅಲ್ಲ.
ರನ್ಟೈಮ್ ಆವೃತ್ತಿಯನ್ನು CLI ಆವೃತ್ತಿಗೆ ಜೋಡಿಸಲಾಗಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಒಂದು ಪ್ರಾಜೆಕ್ಟ್ನಲ್ಲಿರುವ ಇಬ್ಬರು ಡೆವಲಪರ್ಗಳು ಒಂದೇ ರೀತಿಯ PHP ಬಿಲ್ಡ್ಗಳನ್ನು ರನ್ ಮಾಡುತ್ತಾರೆ. zinnector dev --reset-runtime ಇನ್ಸ್ಟಾಲ್ ಆದ ರನ್ಟೈಮ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ ಮತ್ತೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ, ಇದು ಇನ್ಸ್ಟಾಲ್ ಆಗಿದ್ದರೂ ಬೂಟ್ ಆಗದ ರನ್ಟೈಮ್ಗೆ ಪರಿಹಾರವಾಗಿದೆ.
Node 26 ಅಥವಾ ಹೊಸದರಲ್ಲಿ
CLI ಸ್ವತಃ 24 ಮತ್ತು ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಯಾವುದೇ Node ನಲ್ಲಿ ರನ್ ಆಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ರನ್ಟೈಮ್ನ ನೇಟಿವ್ ಮಾಡ್ಯೂಲ್ Node 24 ಮತ್ತು 25 ಗೆ ಮಾತ್ರ ಮೊದಲೇ ಬಿಲ್ಡ್ ಮಾಡಿದ ಬೈನರಿಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ (ಸೆಪ್ಟೆಂಬರ್ 2026 ರಂತೆ). ಯಾವುದನ್ನೂ ಕಂಪೈಲ್ ಮಾಡುವ ಬದಲು — Windows ನಲ್ಲಿ ಇದರರ್ಥ Visual Studio ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವುದು — Zinnector® ರನ್ಟೈಮ್ಗಾಗಿ ಮಾತ್ರ ಸುಮಾರು 30 MB ಗಾತ್ರದ Node 24 ಅನ್ನು nodejs.org ಪ್ರಕಟಿಸುವ ಚೆಕ್ಸಮ್ಗಳ ವಿರುದ್ಧ ಪರಿಶೀಲಿಸಿ, ಅದೇ ಕ್ಯಾಶ್ಗೆ ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ. ಇದು ಅನ್ವಯಿಸಿದಾಗ ಇನ್ಸ್ಟಾಲ್ ಪ್ರಾಂಪ್ಟ್ ಅದನ್ನು ತಿಳಿಸುತ್ತದೆ. ನಿಮ್ಮ ಸ್ವಂತ Node ನಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆ ಆಗುವುದಿಲ್ಲ.
ಸಂಬಂಧಿತ ವಿಷಯಗಳು