വിജ്ഞാന കേന്ദ്രം
zinnector dev ഉപയോഗിച്ചുള്ള ലോക്കൽ ഡെവലപ്മെന്റ്
സിന്നക്ടർ ഡെവ് (zinnector dev) നിങ്ങളുടെ സ്വന്തം കമ്പ്യൂട്ടറിൽ എങ്ങനെ ഒരു യഥാർത്ഥ WordPress പ്രവർത്തിപ്പിക്കുന്നു: രണ്ട് റൺടൈമുകൾ (ഡോക്കർ ഇല്ലാത്ത WebAssembly അല്ലെങ്കിൽ ഡോക്കറിലെ നേറ്റീവ് PHP), PHP, WordPress പതിപ്പ് തിരഞ്ഞെടുക്കൽ, നിങ്ങളുടെ പ്രോജക്റ്റിൽ നിന്ന് എന്താണ് നൽകുന്നത്, 570 MB റൺടൈം എവിടെയാണ് സ്ഥിതി ചെയ്യുന്നത്, നോഡ് 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 കണ്ടെയ്നറുകൾ പ്രവർത്തിപ്പിക്കുന്നു. ഇത് വേഗത കുറഞ്ഞതാണ്, ഒരു 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/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-ൽ വിഷ്വൽ സ്റ്റുഡിയോ ഇൻസ്റ്റാൾ ചെയ്യുക എന്നാണ് ഇതിന്റെ അർത്ഥം — Zinnector® റൺടൈമിനായി മാത്രം ഏകദേശം 30 MB വറ്റുള്ള ഒരു Node 24, nodejs.org പ്രസിദ്ധീകരിക്കുന്ന ചെക്ക്സമ്മുകൾക്കെതിരെ പരിശോധിച്ചുറപ്പിച്ച്, അതേ കാഷെയിലേക്ക് ശേഖരിക്കുന്നു. ബാധകമാകുമ്പോൾ ഇൻസ്റ്റാൾ പ്രോംപ്റ്റ് അക്കാര്യം വ്യക്തമാക്കുന്നു. നിങ്ങളുടെ സ്വന്തം Node-ൽ മാറ്റങ്ങളൊന്നും വരുത്തുന്നില്ല.
ബന്ധപ്പെട്ടവ
ഇപ്പോഴും കുടുങ്ങിക്കിടക്കുകയാണോ?
എല്ലാ പ്ലാനുകളിലും പിന്തുണയും നിങ്ങളുടെ സ്വന്തം ഭാഷയിലുള്ള മറുപടികളും ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.
സെപ്വർട്ടുമായി ബന്ധപ്പെടുക → എല്ലാ ലേഖനങ്ങളും →