আল্টিমেট মাল্টিসাইট ১০১
আল্টিমেট মাল্টিসাইট হলো একটি ওয়ার্ডপ্রেস মাল্টিসাইট প্লাগইন যা আপনাকে গ্রাহকদের WaaS বা ওয়েবসাইট অ্যাজ আ সার্ভিস অফার করতে সাহায্য করে। আমরা শুরু করার আগে এবং জানতে পারি আল্টিমেট মাল্টিসাইট কীভাবে আপনার ব্যবসা এবং গ্রাহকদের সাহায্য করতে পারে, তার জন্য আমাদের কিছু প্রাথমিক জ্ঞান অর্জন করা দরকার।
ওয়ার্ডপ্রেস মাল্টিসাইট
আমাদের বেশিরভাগই স্টক-স্ট্যান্ডার্ড ওয়ার্ডপ্রেস ইনস্টলেশনের সাথে পরিচিত। আপনি হয় আপনার হোস্টিং প্রোভাইডারের কন্ট্রোল প্যানেল ব্যবহার করে এটি তৈরি করতে পারেন অথবা যারা সাহসী, তারা একটি নতুন ওয়েব সার্ভার এবং ডেটাবেস সেটআপ করতে পারে ন, কোর ফাইলগুলো ডাউনলোড করেন এবং ইনস্টলেশন প্রক্রিয়া শুরু করেন।
এটি সারা বিশ্বের লক্ষ লক্ষ ওয়ার্ডপ্রেস সাইটের জন্য কাজ করে, কিন্তু একটি এজেন্সি বা হোস্টিং প্রোভাইডারের দৃষ্টিকোণ থেকে চলুন কিছুক্ষণ ভলিউম নিয়ে আলোচনা করি।
একটি স্বয়ংক্রিয় কন্ট্রোল প্যানেলের মাধ্যমে একটি ওয়ার্ডপ্রেস সাইট বা এমনকি একশ সাইট তৈরি করা ঠিক হলেও, এই সাইটগুলোর ব্যবস্থাপনার দায়িত্ব এলে শীঘ্রই সমস্যাগুলো দেখা দিতে শুরু করে। যদি এগুলো পরিচালনা না করা হয়, তবে আপনি ম্যালওয়্যার আক্রমণের জন্য প্রধান লক্ষ্যবস্তু হয়ে পড়েন। পরিচালনা করতে মানে প্রচেষ্টা এবং সম্পদের ব্যবহার, এবং যদিও ওয়ার্ডপ্রেস সাইট পরিচালনার প্রক্রিয়াকে সহজ করার জন্য বাহ্যিক টুলস এবং প্লাগইন উপলব্ধ আছে, গ্রাহকরা অ্যাডমিনিস্ট্রেটিভ অ্যাক্সেস বজায় রাখার কারণে এই প্রচেষ্টাগুলো সহজেই পরাজিত হতে পারে।
WordPress-ৰ মূল অংশত, 'Multisite' নামৰ এটা বৈশিষ্ট্য আছে যিটো ২০১০ চনত WordPress 3.0 ৰ আৰম্ভণিৰ সময়ত আৰম্ভ হৈছিল। তেতিઆતৰ পৰা ই নতুন বৈশিষ্ট্যসমূহ প্ৰৱৰ্তন কৰা আৰু চৰ্ততা বৃদ্ধি কৰাৰ লক্ষ্যৰে বহু সংস্কৰণ লাভ কৰিছে।
মূল কথাটো হ'ল, এটা WordPress multisite-ক এনেদৰে ধৰিব পাৰি: এজন বিশ্ববিদ্যালয়ৰ এটা একক WordPress স্থাপন কৰে কিন্তু প্ৰতিটো বিভাগ নিজৰ বাবে নিজৰ WordPress সাইট ৰাখে।
এই উক্তিটো ভাঙি চোৱাৰ বাবে, আমি কিছু মৌলিক শব্দসমূহ চাব লাগিব যিবোৰ কেৱল Ultimate Multisite-ৰ ডকুমেন্টেশ্যনত নহয়, বৰঞ্চ WordPress সম্প্ৰদায়ৰ সকলো ঠাইতেও पाइन्छ।
নেটৱৰ্ক (The Network)
WordPress ৰ দৃষ্টিকোণৰ পৰা, এটা multisite নেটৱৰ্ক মানে হৈছে এজন একক ড
subdirectory কনফিগারেশনে, নেটওয়ার্ক সাইটগুলি মূল ডোমেইন নামের উপর ভিত্তি করে একটি পাথ উত্তরাধিকার সূত্রে পায়। উদাহরণস ্বরূপ, 'site1' লেবেলযুক্ত একটি নেটওয়ার্ক সাইটের সম্পূর্ণ URL হবে https://domain.com/site1। subdomain কনফিগারেশনে, নেটওয়ার্ক সাইটটি মূল ডোমেইন নাম থেকে তার নিজস্ব একটি subdomain পাবে। এইভাবে, 'site1' লেবেলযুক্ত একটি সাইটের সম্পূর্ণ URL হবে https://site1.domain.com/।
যদিও উভয় বিকল্পই পুরোপুরি বৈধ পছন্দ, তবে subdomains ব্যবহারের কিছু সুবিধা আছে কিন্তু এর আর্কিটেকচারের জন্য আরও বেশি চিন্তা এবং পরিকল্পনা প্রয়োজন।
DNS-এর ক্ষেত্রে, subdirectories ব্যবহার করা তুলনামূলকভাবে সহজ একটি চ্যালেঞ্জ উপস্থাপন করে। যেহেতু নেটওয়ার্ক সাইটগুলি মূল পাথগুলির সন্তান, তাই শুধুমাত্র মূল ডোমেইন নামের জন্য একটি মাত্র ডোমেইন নাম এন্ট্রি থাকা প্রয়োজন। subdomains এর ক্ষেত্রে চ্যালেঞ্জটি একটু বেশি জটিল, যার জন্য হয় প্রতিটি নেটওয়ার্ক সাইটের জন্য আলাদা CNAME এন্ট্রি বা DNS রেকর্ডে ওয়াইল্ডকার্ড (*) এন্ট্রি প্রয়োজন।
SSL এবং SSL সার্টিফিকেট ইস্যু এবং ব্যবহারের ক্ষেত্রে আরও একটি বিবেচ্য বিষয় হলো। subdirectory কনফিগারেশনে একটি একক ডোমেইন সার্টিফিকেট ব্যবহার করা যেতে পারে কারণ নেটওয়ার্ক সাইটগুলি মূল ডোমেইন নামের পাথ মাত্র। এইভাবে, domain.com এর জন্য একটি সার্টিফিকেট https://domain.com/site1, https://domain.com/site2 এবং এগুলোর জন্য SSL প্রদান করতে যথেষ্ট হবে।
subdomain কনফিগারেশনে ওয়াইল্ডকার্ড SSL সার্টিফিকেট ব্যবহার করা সবচেয়ে সাধারণ অপশনগুলোর মধ্যে একটি। এই ধরণের SSL সার্টিফিকেট একটি ডোমেইন এবং এর সাবডোমেইন উভয়ের জন্যই এনক্রিপশন প্রদান করে। তাই, একটি ওয়াইল্ডকার্ড SSL সার্টিফিকেট https://site1.domain.com, https://site2.domain.com এবং এমনকি https://domain.com-এর জন্যও এনক্রিপশন সরবরাহ করবে।
যদিও অন্যান্য বিকল্পও বিদ্যমান, তবে এগুলি প্রায়শই সীমিত পরিসর এবং প্রয়োগের ক্ষেত্রে সীমাবদ্ধ থাকে এবং উপযুক্ততা সম্পর্কে অতিরিক্ত কনফিগারেশন ও বিবেচনার প্রয়োজন হয়।
প্লাগইন এবং থিমসমূহ
ওয়ার্ডপ্রেস গ্রাহকের দৃষ্টিকোণ থেকে কী দেয় তা সে কেড়ে নেয়, অন্তত সেই দিক থেকে। একটি স্বতন্ত্র ওয়ার্ডপ্রেস ইনস্টলেশনে যদি সাইট অ্যাডমিনিস্ট্রেটর কোনো খারাপ প্লাগইন ইনস্টল করে বা তাদের ইনস্টলেশন আপডেট রাখতে ব্যর্থ হয়, তবে এই কাজের একমাত্র শিকার এবং হতাহত তিনিই হবেন। তবে, একটি মাল্টিসাইট ইনস্টলেশনে কোনো সাইট অ্যাডমিনিস্ট্রেটর যখন কোনো খারাপ প্লাগইন ইনস্টল করেন, তখন নেটওয়ার্কের প্রতিটি স াইটের শিকার একজন শিকার তৈরি করেন।
এই কারণে, যখন এটিকে মাল্টিসাইট ওয়ার্ডপ্রেস হিসাবে কনফিগার করা হয়, তখন সাইট অ্যাডমিনিস্ট্রেটরদের প্লাগইন এবং থিম ইনস্টল করার ক্ষমতা থেকে ক্ষমতা সরিয়ে নেওয়া হয় এবং পরিবর্তে এই ক্ষমতা একটি নতুন তৈরি করা নেটওয়ার্ক অ্যাডমিনিস্ট্রেটর বা ‘সুপার অ্যাডমিন’ ভূমিকার কাছে স্থানান্তরিত করা হয়। এই বিশেষ ভূমিকাটি তখন সিদ্ধান্ত নিতে পারে যে নেটওয়ার্ক সাইটগুলির অ্যাডমিনিস্ট্রেটরদের তাদের ড্যাশবোর্ডে প্লাগইন মেনু দেখতে বা অ্যাক্সেস করতে দেওয়া হবে কিনা এবং যদি দেওয়া হয়, তবে সেই অনুমতিগুলি প্লাগইন অ্যাক্টিভেট বা ডিঅ্যাক্টিভেট করার ক্ষেত্রে প্রসারিত হবে কি না।
এই সীমা পর্যন্ত নেটওয়ার্ক অ্যাডমিনিস্ট্রেটরকে নেটওয়ার্কে প্লাগইন এবং থিম ইনস্টল করার জন্য দায়ী থাকেন এবং এই প্লাগইন ও থিমগুলি নেটওয়ার্ক সাইটগুলিতে ব্যবহার করার অনুমতি দেওয়ার জন্য পারমিশন অর্পণ করেন। সাইট অ্যাডমিনিস্ট্রেটররা তাদের সাইটের জন্য নির্ধারিত নয় এমন প্লাগইন বা থিম ইনস্টল করতে পারে না বা সেগুলোর অ্যাক্সেস করতে পারে না।
ইউজার এবং অ্যাডমিনিস্ট্রেটরগণ
একটি WordPress Multisite-এ, সমস্ত নেটওয়ার্ক সাইট একই ডেটাবেস ভাগ করে এবং তাই একই ব্যবহারকারী, ভূমিকা (roles) এবং ক্ষমতা (capabilities) ভাগ করে নেয়। এটিকে সবচেয়ে ভালোভাবে বোঝার উপায় হলো যে সমস্ত ব্যবহারকারী কোনো নির্দিষ্ট সাইটের সদস্য নয়, বরং তারা পুরো নেটওয়ার্কের সদস্য।
এই ধারণাটি মাথায় রেখে, ব্যবহারকারীদের তৈরি করার অনুমতি দেওয়া অবাঞ্ছিত হতে পারে এবং এই কারণে WordPress Multisite সাইট অ্যাডমিনিস্ট্রেটরের কাছ থেকে এই ক্ষমতা সরিয়ে নেয় এবং এটিকে নেটওয়ার্ক অ্যাডমিনিস্ট্রেটরের কাছে নিয়ে যায়। এর পরিবর্তে, নেটওয়ার্ক অ্যাডমিনিস্ট্রেটর একটি সাইট অ্যাডমিনিস্ট্রেটরের কাছে তাদের নিজস্ব সাইটের জন্য ইউজার অ্যাকাউন্ট তৈরি করার অনুমতি দেওয়ার জন্য প্রয়োজনীয় সুবিধাগুলি অর্পণ করতে পারেন।
উপরে উল্লিখিত বিষয়টিকে আরও একবার বলতে গেলে, যদিও ইউজার অ্যাকাউন্টগুলি যে সাইটে আছে তার সাথে সম্পর্কিত বলে মনে হতে পারে, বাস্তবে সেগুলি নেটওয়ার্কে বরাদ্দ করা থাকে এবং তাই পুরো নেটওয়ার্কে অনন্য (unique) হতে হবে। এই কারণে কিছু ক্ষেত্রে ব্যবহারকারীর নাম নিবন্ধন করার জন্য উপলব্ধ নাও থাকতে পারে।
যদিও এন্টারপ্রাইজ সিস্টেমে এটি অপরিচিত ধারণা নয়, কিন্তু ব্যবহারকারী নিবন্ধন এবং প্রমাণীকরণের এই একক উৎসটি এমন মানুষদের জন্য বোঝা কঠিন হতে পারে যারা স্বতন্ত্র ওয়ার্ডপ্রেস ইনস্টলেশনের সাথে পরিচিত যেখানে ব্যবহারকারী প্রশাস ন কিছুটা সহজ।
মিডিয়া (Media)
যেখানে নেটওয়ার্ক সাইটগুলি একটি ওয়ার্ডপ্রেস মাল্টিসাইটে একই ডেটাবেস ভাগ করে নেয়, সেখানে তারা ফাইল সিস্টেমের জন্য আলাদা পাথ বজায় রাখে মিডিয়া ফাইলের ক্ষেত্রে।
স্ট্যান্ডার্ড ওয়ার্ডপ্রেস লোকেশন (wp-content/uploads) একই থাকে; তবে এর পাথ পরিবর্তন করা হয় নেটওয়ার্ক সাইটের অনন্য আইডি প্রতিফলিত করার জন্য। ফলস্বরূপ, একটি নেটওয়ার্ক সাইটের মিডিয়া ফাইলগুলি wp-contents/uploads/site/[id] হিসাবে প্রদর্শিত হয়।
পার্মালিঙ্কস (Permalinks)
আমরা আগে উল্লেখ করেছি যে সাবডোমেইন কনফিগারেশনের চেয়ে সাবডিরেক্টরি কনফিগারেশনের কিছু স্বতন্ত্র সুবিধা রয়েছে এবং এখানে সেগু লি হলো: পাথ।
একটি সাবডিরেক্টরি কনফিগারেশনে, মূল সাইটটি (নেটওয়ার্ক প্রতিষ্ঠিত হওয়ার সময় তৈরি করা প্রথম সাইট) এবং নেটওয়ার্ক সাবসাইটগুলির ডোমেইন নাম থেকে আসা একই পাথ ভাগ করে নিতে হবে। এর ফলে প্রচুর দ্বন্দ্বের সম্ভাবনা থাকে।
পোস্টগুলির জন্য, নেটওয়ার্ক সাইটগুলির সাথে সংঘর্ষ এড়াতে মূল সাইটে একটি বাধ্যতামূলক /blog/ পাথ যোগ করা হয়। এর মানে হলো 'পোস্টের নাম' এর মতো সুন্দর পার্মালিঙ্কগুলি domain.name/blog/post-name/ হিসাবে প্রদর্শিত হবে।
subdomain কনফিগারেশনে এই কাজটি করার প্রয়োজন নেই কারণ প্রতিটি নেটওয়ার্ক সাইট সম্পূর্ণ ডোমেইন বিভাজন থেকে উপকৃত হয় এবং তাই একটি একক পথের উপর নির্ভর করতে তাদের প্রয়োজন হয় না। পরিবর্তে, তারা তাদের subdomain এর উপর ভিত্তি করে নিজস্ব স্বতন্ত্র পথ বজায় রাখে।