ਗਿਆਨ ਅਧਾਰ
zinnector dev ਨਾਲ ਸਥਾਨਕ ਵਿਕਾਸ
ਕਿਵੇਂ zinnector dev ਤੁਹਾਡੀ ਆਪਣੀ ਮਸ਼ੀਨ 'ਤੇ ਇੱਕ ਅਸਲੀ WordPress ਚਲਾਉਂਦਾ ਹੈ: ਦੋ ਰਨਟਾਈਮ (ਬਿਨਾਂ Docker ਦੇ WebAssembly, ਜਾਂ Docker ਵਿੱਚ ਨੇਟਿਵ PHP), ਇੱਕ PHP ਅਤੇ WordPress ਸੰਸਕਰਣ ਦੀ ਚੋਣ ਕਰਨਾ, ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਤੋਂ ਕੀ ਪਰੋਸਿਆ ਜਾਂਦਾ ਹੈ, 570 MB ਰਨਟਾਈਮ ਕਿੱਥੇ ਰਹਿੰਦਾ ਹੈ, ਅਤੇ Node 26 'ਤੇ ਕੀ ਹੁੰਦਾ ਹੈ।
zinnector dev ਤੁਹਾਡੀ ਆਪਣੀ ਮਸ਼ੀਨ 'ਤੇ ਇੱਕ ਅਸਲੀ WordPress ਚਲਾਉਂਦਾ ਹੈ, ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਪਲੱਗਇਨਾਂ ਅਤੇ ਥੀਮਾਂ ਨੂੰ ਤੁਹਾਡੀ ਪਸੰਦ ਦੇ PHP ਸੰਸਕਰਣ ਦੇ ਨਾਲ ਸਰਵ ਕਰਦਾ ਹੈ। ਇਹ ਲੇਖ ਦੋ ਰਨਟਾਈਮਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ ਜੋ ਇਹ ਵਰਤ ਸਕਦਾ ਹੈ, ਸੰਸਕਰਣਾਂ ਦੀ ਚੋਣ ਕਿਵੇਂ ਕਰਨੀ ਹੈ, ਕਿਹੜੀ ਚੀਜ਼ ਕਿੱਥੋਂ ਸਰਵ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਡਿਸਕ 'ਤੇ ਰਨਟਾਈਮ ਕਿੱਥੇ ਰਹਿੰਦਾ ਹੈ — ਤਾਂ ਜੋ ਜੋ ਤੁਸੀਂ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਟੈਸਟ ਕਰਦੇ ਹੋ, ਉਹੀ ਤੁਸੀਂ ਡਿਪਲਾਏ ਕਰੋ।
ਦੋ ਰਨਟਾਈਮ, ਅਤੇ ਦੋਵੇਂ ਅਸਲੀ ਕਿਉਂ ਹਨ
Playground ਡਿਫਾਲਟ ਹੈ। WordPress Playground PHP ਨੂੰ WebAssembly ਵਿੱਚ ਕੰਪਾਈਲ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ Node ਦੇ ਅੰਦਰ ਚਲਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ Node ਤੋਂ ਇਲਾਵਾ ਕੁਝ ਵੀ ਸਥਾਪਿਤ ਨਾ ਹੋਣ ਵਾਲਾ ਲੈਪਟਾਪ ਵੀ ਸਕਿੰਟਾਂ ਵਿੱਚ ਇੱਕ WordPress ਬੂਟ ਕਰ ਦਿੰਦਾ ਹੈ। 5.2 ਤੋਂ 8.5 ਤੱਕ ਕੋਈ ਵੀ PHP ਉਪਲਬਧ ਹੈ। ਇਹ PHP ਐਕਸਟੈਂਸ਼ਨਾਂ ਦਾ ਇੱਕ ਛੋਟਾ ਸਮੂਹ (intl, redis, memcached ਜਿਵੇਂ ਕਿ ਮੌਜੂਦਾ ਬਿਲਡ 'ਤੇ ਮਾਪਿਆ ਗਿਆ ਹੈ) ਲੈ ਕੇ ਆਉਂਦਾ ਹੈ, ਜੋ ਜ਼ਿਆਦਾਤਰ ਪਲੱਗਇਨ ਅਤੇ ਥੀਮ ਦੇ ਕੰਮ ਲਈ ਕਾਫ਼ੀ ਹੈ।
Docker ਨੇਟਿਵ php-fpm ਅਤੇ MariaDB ਕੰਟੇਨਰ ਚਲਾਉਂਦਾ ਹੈ। ਇਹ ਧੀਮਾ ਹੈ, ਇਸਨੂੰ ਡੌਕਰ ਡੈਮਨ ਅਤੇ ਲਗਭਗ 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 # 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/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 ਤੱਕ) ਲਈ ਪ੍ਰੀ-ਬਿਲਟ ਬਾਇਨਰੀਆਂ ਭੇਜਦਾ ਹੈ। ਕਿਸੇ ਵੀ ਚੀਜ਼ ਨੂੰ ਕੰਪਾਈਲ ਕਰਨ ਦੀ ਬਜਾਏ — ਜਿਸਦਾ ਵਿੰਡੋਜ਼ 'ਤੇ ਮਤਲਬ Visual Studio ਸਥਾਪਿਤ ਕਰਨਾ ਹੈ — Zinnector® ਉਸੇ ਕੈਸ਼ੇ ਵਿੱਚ ਸਿਰਫ ਰਨਟਾਈਮ ਲਈ ਇੱਕ Node 24 (ਲਗਭਗ 30 MB), ਜੋ nodejs.org ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਿਤ ਚੈੱਕਸਮ ਵਿਰੁੱਧ ਪ੍ਰਮਾਣਿਤ ਹੈ, ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਸਥਾਪਨਾ ਪ੍ਰੋਂਪਟ ਅਜਿਹਾ ਕਰਨ ਸਮੇਂ ਦੱਸਦਾ ਹੈ। ਤੁਹਾਡੇ ਆਪਣੇ Node ਬਾਰੇ ਕੁਝ ਵੀ ਨਹੀਂ ਬਦਲਦਾ।
ਸੰਬੰਧਿਤ
ਕੀ ਹਾਲੇ ਵੀ ਉਲਝਣ ਵਿੱਚ ਹੋ?
ਹਰ ਪਲਾਨ ਵਿੱਚ ਸਹਾਇਤਾ ਸ਼ਾਮਲ ਹੈ ਅਤੇ ਤੁਹਾਡੀ ਆਪਣੀ ਭਾਸ਼ਾ ਵਿੱਚ ਜਵਾਬ ਮਿਲਦੇ ਹਨ।
ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ → ਸਾਰੇ ਲੇਖ →