জ্ঞানভাণ্ডার

zinnector dev-এর সাথে স্থানীয় ডেভেলপমেন্ট

কীভাবে zinnector dev আপনার নিজের মেশিনে একটি আসল WordPress চালায়: দুটি রানটাইম (Docker ছাড়া WebAssembly, অথবা Docker-এ নেটিভ PHP), একটি PHP এবং WordPress সংস্করণ নির্বাচন করা, আপনার প্রকল্প থেকে কী পরিবেশন করা হয়, ৫৭০ মেগাবাইটের রানটাইমটি কোথায় থাকে এবং Node 26-এ কী ঘটে।

zinnector dev আপনার নিজস্ব মেশিনে একটি আসল WordPress রান করে, আপনার প্রকল্পের প্লাগইন এবং থিমগুলি পরিবেশন করে, আপনার পছন্দসই একটি PHP সংস্করণের সাথে। এই নিবন্ধটি ব্যাখ্যা করে এটি যে দুটি রানটাইম ব্যবহার করতে পারে, কীভাবে সংস্করণ বেছে নিতে হয়, কোথা থেকে কী পরিবেশন করা হয় এবং ডিস্কে রানটাইম কোথায় অবস্থান করে — যাতে আপনি স্থানীয়ভাবে যা পরীক্ষা করেন তা-ই যেন ডিপ্লয় করেন।

দুটি রানটাইম, এবং কেন উভয়ই বাস্তব

Playground হলো ডিফল্ট। WordPress Playground পিএইচপি-কে 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-এ Visual Studio ইনস্টল করা — Zinnector® শুধুমাত্র রানটাইমের জন্য প্রায় 30 MB-এর একটি Node 24 একই ক্যাশে নিয়ে আসে, যা nodejs.org দ্বারা প্রকাশিত চেকসামের বিপরীতে যাচাই করা হয়। এটি প্রযোজ্য হলে ইনস্টল প্রম্পটে তা জানানো হয়। আপনার নিজস্ব Node-এর কোনো পরিবর্তন হয় না।

সম্পর্কিত

সমস্ত ডেভেলপার ডকুমেন্টেশন →

ব্লগ থেকে সাম্প্রতিক

হোস্টিং, এসইও এবং বৃহৎ পরিসরে সাইট পরিচালনা সম্পর্কে আমরা যা লিখছি।

হোস্টিং স্তর থেকে এসইও এবং লিঙ্ক বিল্ডিং: ২০২৬ সালের একজন অপারেটরের দৃষ্টিভঙ্গি

২০২৬ সালে হোস্টিং যেভাবে ইনডেক্সিং এবং লিঙ্ক ইকুইটি প্রভাবিত করে: পেজ ইনডেক্স করে রাখা, কাজ শুরুর আগে পুরনো ডোমেন যাচাই করা, কোনো সার্চ ফুটপ্রিন্ট ছাড়া লিঙ্ক তৈরি করা, এবং এসইও-এর জন্য অবকাঠামো কী করতে পারে আর কী পারে না সে সম্পর্কে একটি সৎ দৃষ্টিভঙ্গি।

পোস্টটি পড়ুন →

WordPress-কে দ্রুত এবং নিরাপদ করা: পারফরম্যান্স এবং প্লাগইন চেকলিস্ট

দ্রুত এবং নিরাপদ WordPress-এর জন্য একটি ব্যবহারিক চেকলিস্ট: সার্ভার-স্তরের ক্যাশিং, সাইট-ভিত্তিক অবজেক্ট ক্যাশ, ব্যবহারের উপযুক্ত অল্প কয়েকটি প্লাগইন, স্ট্যাক আপ-টু-ডেট রাখা এবং WooCommerce-এর যে পৃষ্ঠাগুলি আপনার কখনোই ক্যাশ করা উচিত নয়।

পোস্টটি পড়ুন →

২০২৬ সালে কীভাবে পরিচালিত ওয়েব হোস্টিং বেছে নেবেন: ক্রেতার নির্দেশিকা

একটি কন্ট্রোল প্যানেলযুক্ত সস্তা বাক্সের থেকে ভালো পরিচালিত হোস্টিংকে প্রকৃতপক্ষে কী আলাদা করে — মাইগ্রেশন, ব্যাকআপ, আইসোলেশন, আসল ক্যাশিং এবং সৎ স্কেলিং — এবং প্রতিশ্রুতিবদ্ধ হওয়ার আগে এটি কীভাবে বিচার করবেন।

পোস্টটি পড়ুন →

ব্লগটি পড়ুন →

এখনও আটকে আছেন?

প্রতিটি প্ল্যানেই সাপোর্ট অন্তর্ভুক্ত রয়েছে, ডেস্কটি দিনে 24 ঘণ্টা খোলা থাকে এবং আপনি আমাদের 58টি ভাষার যেকোনোটিতে আমাদের লিখতে পারেন—আমরা আপনার ভাষাতেই উত্তর দিই।

সহায়তার সাথে যোগাযোগ করুন → সমস্ত নিবন্ধ →