ዕውቀት ማዕከል

በzinnector dev አማካኝነት አካባቢያዊ ልማት (Local development)

zinnector dev በእርስዎ የራቀ ማሽን ላይ እውነተኛ WordPress እንዴት እንደሚያስኬድ፡ ሁለቱ የሩንታይም አካባቢዎች (ያለ Docker የ WebAssembly፣ ወይም በ Docker ውስጥ ያለው የኔቲቭ PHP)፣ የ PHP እና WordPress ስሪት መምረጥ፣ ከፕሮጀክትዎ ምን እንደሚቀርብ፣ የ 570 MB ሩንታይም አካባቢ የት እንደሚቀመጥ፣ እና በ Node 26 ላይ ምን እንደሚከሰት።

zinnector dev በፕሮጀክትዎ ውስጥ ያሉትን ፕለጊኖች እና ጭማሬዎች (themes) እርስዎ በሚመርጡት የ PHP ስሪት በማስተናገድ፣ በእርስዎ ማሽን ላይ እውነተኛ WordPress ያንቀሳቅሳል። ይህ ጽሑፍ ሊጠቀምባቸው የሚችላቸውን ሁለቱን የሩጫ ጊዜዎች (runtimes)፣ ስሪቶችን እንዴት እንደሚመርጡ፣ ምን ከየት እንደሚስተናገድ፣ እና የሩጫ ጊዜው በዲስክ ላይ የት እንደሚገኝ ያብራራል — ስለዚህ በአካባቢዎ (locally) የሚሞክሩት ነገር እርስዎ ከሚዘረጉት (deploy) ጋር አንድ አይነት ይሆናል።

ሁለቱ የሩጫ ጊዜዎች፣ እና ሁለቱም ለምን እውነተኛ እንደሆኑ

Playground ነባሪው ነው። WordPress Playground PHPን ወደ WebAssembly ያቀናጃል (compiles) እና በ Node ውስጥ ያንቀሳቅሰዋል፣ ስለዚህ Node ብቻ የተጫነበት ላፕቶፕ በሰከንዶች ውስጥ WordPressን ያስነሳል። ከ 5.2 እስከ 8.5 ያለው ማንኛውም PHP ይገኛል። አነስተኛ የ PHP ኤክስቴንሽኖች ስብስብን ይዟል (intlredismemcached በአሁኑ ስብስብ ላይ እንደተለካው)፣ ይህም ለአብዛኞቹ የፕለጊን እና ጭማሬ ስራዎች በቂ ነው።

Docker የነባር (native) php-fpm እና MariaDB ኮንቴይነሮችን ያንቀሳቅሳል። እሱ አዝጋሚ ነው፣ የ Docker ዴሞን እና ወደ 1.2 GB የሚጠጉ ምስሎችን (images) ይፈልጋል፣ እና 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 ይመጣሉ — phpwordpressruntime እና port — እነዚህም በ zinnector new የሚጻፉ እና እርስዎ ሊፈፅሟቸው (commit) የሚገቡ ናቸው፣ ስለዚህ በፕሮጀክቱ ላይ ያለ ሁሉም ሰው አንድ አይነት ስሪቶችን ያንቀሳቅሳል። በትእዛዝ መስመሩ (command line) ላይ ያለ ባንዲራ (flag) ለዚያ እንቅስቃሴ ከፋይሉ ይበልጣል።

እርስዎ የሚያስታውቁት ስሪት እና የሚሰራው ስሪት የተለዩ እውነታዎች ናቸው። zinnector dev --once የሩጫ ጊዜውን ያስነሳል፣ በእርግጥ ሪፖርት የሚያደርገውን ያትማል — የ PHP ስሪት፣ የ WordPress ስሪት፣ የተጫኑ ኤክስቴንሽኖች — እና ይቆማል። zinnector check --probe ፕሮጀክትዎን ከማስተናገጃ ቦታ (hosting slot) ጋር ሲያነጻጽር ተመሳሳይ ልኬትን ይጠቀማል።

ከእርስዎ ፕሮጀክት የሚስተናገደው ምን እንደሆነ

የሩጫ ጊዜው የእርስዎን ፕሮጀክት wp-content/pluginswp-content/themes እና wp-content/mu-plugins ዳይሬክተሪዎችን በቀጥታ ያዘጋጃል (mounts)፣ ስለዚህ የሚያስቀምጡት ፋይል በሚቀጥለው ዳግም መጫን ላይ ቀጥታ ይሰራል። ያሉ ነገር ግን ምንም እውነተኛ ይዘት የሌላቸው ዳይሬክተሪዎች ሆን ተብሎ አይዘጋጁም፦ በሩጫ ጊዜው የራሱ ጭማሬዎች ላይ የተዘጋጀ ባዶ themes/ ለ WordPress ምንም አይነት ጭማሬ አይተውለትም፣ ይህም የእርስዎ ጣቢያ ሳይሆን ባዶ 500 ስህተት ነው። አወቃቀሩ (scaffold) ባዶ ዳይሬክተሪዎችን በ .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 ላይ ይሰራል. የሩጫ ጊዜው ነባር ሞጁል ግን ቅድመ-ግንባታ (prebuilt) ባይነሪዎችን የሚያቀርበው ለ Node 24 እና 25 ብቻ ነው (እ.ኤ.አ. እስከ ሴፕቴምበር 2026 ድረስ)። ማንኛውንም ነገር ከማቀናጀት ይልቅ — በ Windows ላይ Visual Studio መጫን ማለት ነው — Zinnector® ለሩጫ ጊዜው ብቻ የሚሆን Node 24 ን ያመጣል፣ ወደ 30 MB አካባቢ፣ nodejs.org ከሚያተምናቸው ቼክሰሞች ጋር የተረጋገጠ፣ ወደዚያው መሸጎጫ ውስጥ ያስገባል። መመሪያው በሚተገበርበት ጊዜ የመጫኛ ጥያቄው ይህንን ይናገራል። ስለራስዎ Node ምንም የሚቀየር ነገር የለም።

ተዛማጅ

አሁንም ተቸግረዋል?

ድጋፍ በእያንዳንዱ ዕቅድ ውስጥ ተካትቷል እና መልሶች በራስዎ ቋንቋ ይሰጣሉ።

supportን/ድጋፍን ያግኙ ሁሉም ጽሑፎች