Ultimate Multisite ১০১
Ultimate Multisite হলো একটি WordPress Multisite প্লাগইন যা আপনাকে গ্রাহকদের জন্য WaaS বা Websites as a Service অফার করতে সক্ষম করে। Ultimate Multisite কীভাবে আপনার ব্যবসা এবং গ্রাহকদের সাহায্য করতে পারে সেটা জানার আগে, আমাদের কিছু মৌলিক বিষয় বুঝে নিতে হবে।
WordPress Multisite
আমাদের বেশিরভাগই সাধারণ WordPress ইনস্টলেশনের সাথে পরিচিত। আপনি হয়তো হোস্টিং প্রোভাইডারের কন্ট্রোল প্যানেল থেকে এটি তৈরি করেন অথবা, সাহসীদের জন্য, নতুন একটি ওয়েব সার্ভার ও ডাটাবেস সেট আপ করে, কোর ফাইলগুলো ডাউনলোড করে ইনস্টলেশন প্রক্রিয়া শুরু করেন।
এটি সারা বিশ্বে লক্ষ লক্ষ WordPress সাইটের জন্য কাজ করে, কিন্তু একটি এজেন্সি বা হোস্টিং প্রোভাইডা রের দৃষ্টিকোণ থেকে আসুন একটু সংখ্যার দিকে তাকাই।
একটি WordPress সাইট বা এমনকি একটি অটোমেটেড কন্ট্রোল প্যানেলের মাধ্যমে শতাধিক সাইট তৈরি করা খুবই সহজ, কিন্তু এই সাইটগুলো পরিচালনার ক্ষেত্রে সমস্যা দেখা দিতে শুরু করে। পরিচালনা না করলে আপনি ম্যালওয়্যারের সহজ শিকার হয়ে যাবেন। আবার পরিচালনা করতে গেলে প্রচুর শ্রম ও সম্পদ ব্যয় করতে হয় এবং যদিও WordPress সাইট পরিচালনা ও প্রশাসনকে সহজ করতে বাহ্যিক টুল এবং প্লাগইন রয়েছে, তবুও গ্রাহকদের হাতে প্রশাসনিক অ্যাক্সেস থাকায় এই প্রচেষ্টাগুলো সহজেই ব্যর্থ হতে পারে।
WordPress-এর কোরে 'Multisite' নামে একটি ফিচার আছে যা ২০১০ সালে WordPress 3.0 লঞ্চের সময় থেকে শুরু হয়েছিল। তারপর থেকে নতুন ফিচার যোগ এবং নিরাপত্তা জোরদার করতে এটি বেশ কয়েকটি আপডেট পেয়েছে।
সহজ ভাষায়, WordPress multisite-কে এভাবে ভাবুন: একটি বিশ্ববিদ্যালয় WordPress-এর একটি মাত্র ইনস্টলেশন রাখে কিন্তু প্রতিটি বিভাগ তাদের নিজস্ব WordPress সাইট পরিচালনা করে।
এই বিবৃতিটি ভেঙে বুঝতে আসুন কিছু মৌলিক পরিভাষা দেখি যা শুধু Ultimate Multisite-এর ডকুমেন্টেশনেই নয়, সমগ্র WordPress কমিউনিটিতে ব্যবহৃত হয়।
নেটওয়ার্ক
WordPress-এ, একটি multisite network হলো যেখানে একাধিক সাবসাইট একটি একক dashboard থেকে পরিচালনা করা যায়। যদিও হোস্টিং প্রোভাইডার অনুযায়ী multisite network তৈরি করার পদ্ধতি ভিন্ন হয়, শেষ ফলাফল সাধারণত wp-config.php ফাইলে কিছু অতিরিক্ত নির্দেশনা যোগ করা যা WordPress-কে জানায় যে এটি এই নির্দিষ্ট মোডে কাজ করছে।
একটি multisite network এবং একটি স্বতন্ত্র WordPress ইনস্টলেশনের মধ্যে বেশ কিছু সুস্পষ্ট পার্থক্য রয়েছে যা আমরা সংক্ষেপে আলোচনা করব।
Subdomain বনাম Subdirectory
প্রথমেই আপনাকে একটি গুরুত্বপূর্ণ সিদ্ধান্ত নিতে হবে যে multisite ইনস্টলেশন subdirectory নাকি subdomain দিয়ে কাজ করবে। Ultimate Multisite উভয় পছন্দের সাথেই সমানভাবে ভালো কাজ করে কিন্তু দুটি কনফিগারেশনের মধ্যে কিছু স্থাপত্যগত পার্থক্য রয়েছে।
Subdirectory কনফিগারেশনে, নেটওয়ার্ক সাইটগুলো মূল ডোমেইন নামের উপর ভিত্তি করে একটি path পায়। উদাহরণস্বরূপ 'site1' নামের একটি নেটওয়ার্ক সাইটের সম্পূর্ণ URL হবে https://domain.com/site1। Subdomain কনফিগারেশনে, নেটওয়ার্ক সাইটটি মূল ডোমেইন নাম থেকে উদ্ভূত নিজস্ব subdomain পাবে। তাই 'site1' নামের সাইটের সম্পূর্ণ URL হবে https://site1.domain.com/।
যদিও উভয় বিকল্পই সম্পূর্ণ বৈধ, subdomain ব্যবহার বেশ কিছু সুবিধা দেয় তবে এর স্থাপত্যে আরও চিন্তা ও পরিকল্পনা প্রয়োজন।
DNS-এর দিক থেকে subdirectory ব্যবহার তুলনামূলক সহজ। যেহেতু নেটওয়ার্ক সাইটগুলো কেবল প্যারেন্ট path-এর চিলড্রেন, মূল ডোমেইন নামের জন্য শুধুমাত্র একটি DNS এন্ট্রি থাকলেই চলে। Subdomain-এর ক্ষেত্রে চ্যালেঞ্জ একটু জটিল - প্রতিটি নেটওয়ার্ক সাইটের জন্য আলাদা CNAME এন্ট্রি অথবা DNS রেকর্ডে একটি wildcard (*) এন্ট্রি প্রয়োজন।
আরেকটি বিবেচ্য বিষয় হলো SSL এবং SSL সার্টিফিকেট ইস্যু ও ব্যবহার। Subdirectory কনফিগারেশনে একটি একক ডোমেইন সার্টিফিকেট ব্যবহার করা যায় কারণ নেটওয়ার্ক সাইটগুলো কেবল মূল ডোমেইন নামের path। তাই domain.com-এর জন্য একটি সার্টিফিকেট https://domain.com/site1, https://domain.com/site2 এবং আরও অনেকের জন্য পর্যাপ্তভাবে SSL প্রদান করবে।
Subdomain কনফিগারেশনে wildcard SSL সার্টিফিকেট ব্যবহার সবচেয়ে সাধারণ বিকল্পগুলোর একটি। এই ধরনের SSL সার ্টিফিকেট একটি ডোমেইন এবং এর subdomain-গুলোর জন্য এনক্রিপশন প্রদান করে। তাই একটি wildcard SSL সার্টিফিকেট https://site1.domain.com, https://site2.domain.com এবং https://domain.com নিজেই - সবার জন্য এনক্রিপশন দেবে।
যদিও অন্যান্য বিকল্প আছে, সেগুলো প্রায়ই সীমিত এবং উপযুক্ততার বিষয়ে অতিরিক্ত কনফিগারেশন ও বিবেচনা প্রয়োজন।
Plugins এবং Themes
WordPress যা দেয় তা কেড়েও নেয়, অন্তত গ্রাহকের দৃষ্টিকোণ থেকে। একটি স্বতন্ত্র WordPress ইনস্টলেশনে সাইট অ্যাডমিনিস্ট্রেটর যদি একটি খারাপ plugin ইনস্টল করেন বা তাদের ইনস্টলেশন আপডেট রাখতে ব্যর্থ হন, একমাত্র শিকার তারা নিজেই। তবে, একটি multisite ইনস্টলেশনে সাইট অ্যাডমিনিস্ট্রেটর এ কটি খারাপ plugin ইনস্টল করলে নেটওয়ার্কে থাকা প্রতিটি সাইট এর শিকার হয়।
এই কারণে multisite হিসেবে কনফিগার করা হলে WordPress সাইট অ্যাডমিনিস্ট্রেটরদের থেকে plugin এবং theme ইনস্টল করার ক্ষমতা সরিয়ে নেয় এবং পরিবর্তে এই ক্ষমতা নতুন তৈরি network administrator বা 'super admin' রোলে স্থানান্তর করে। এই বিশেষ সুবিধাপ্রাপ্ত রোল তখন সিদ্ধান্ত নিতে পারে নেটওয়ার্ক সাইটের অ্যাডমিনিস্ট্রেটরদের তাদের dashboard-এ plugins মেনু দেখতে বা অ্যাক্সেস করতে দেওয়া হবে কিনা এবং যদি দেওয়া হয়, সেই অনুমতি plugin activate বা deactivate করা পর্যন্ত প্রসারিত হবে কিনা।
এই পরিমাণে network administrator নেটওয়ার্কে plugins এবং themes ইনস্টল করার জন্য দায়ী এবং নেটওয়ার্ক সাইটগুলোকে এই plugins ও themes ব্যবহারের অনুমতি দেন। সাইট অ্যাডমিনিস্ট্রেটররা plugins ও themes ইনস্টল করতে পারেন না বা তাদের সাইটে বরাদ্দ না করা plugins ও themes অ্যাক্সেস করতে পারেন না।
Users এবং Administrators
একটি WordPress Multisite-এ, সমস্ত নেটওয়ার্ক সাইট একই ডাটাবেস শেয়ার করে এবং তাই একই users, roles এবং capabilities শেয়ার করে। এটি ভাবার সবচেয়ে সহজ উপায় হলো সমস্ত users নেটওয়ার্কের সদস্য, কোনো নির্দিষ্ট সাইটের নয়।
এই বোঝাপড়ার সাথে, users তৈরি করার অনুমতি দেওয়া অবাঞ্ছিত হতে পারে এবং এই কারণে WordPress Multisite সাইট অ্যাডমিনিস্ট্রেটরদের থেকে এই ক্ষমতা সরিয়ে নেয় এবং network administrator-এ স্থানান্তর করে। পরিবর্তে network administrator সাইট অ্যাডমিনিস্ট্রেটরকে তাদের নিজের সাইটের জন্য user অ্যাকাউন্ট তৈরির প্রয়োজনীয় সুবিধা দিতে পারেন।
উপরের বিবৃতি পুনরায় বলতে গেলে, যদিও user অ্যাকাউন্টগুলো সাইটের সাথে সম্পর্কিত মনে হয়, বাস্তবে সেগুলো নেটওয়ার্কে বরাদ্দ এবং তাই নেটওয়ার্ক জুড়ে অনন্য হতে হবে। এই কারণে কিছু username রেজিস্টার করার জন্য অনুপলব্ধ হতে পারে।
যদিও এন্টারপ্রাইজ সিস্টেমে এটি অপরিচিত ধারণা নয়, এই একক উৎসের user রেজিস্ট্রেশন এবং authentication প্রায়ই স্বতন্ত্র WordPress ইনস্টলেশনের সাথে পরিচিত লোকদের জন্য বুঝতে কঠিন যেখানে user প্রশাসন তুলনামূলক সহজ।
Media
WordPress Multisite-এ নেটওয়ার্ক সাইটগুলো যেখানে একটি ডাটাবেস শেয়ার করে, সেখানে মিডিয়া ফাইলের জন্য তারা ফাইলসিস্টেমে আলাদা path বজায় রাখে।
স্ট্যান্ডার্ড WordPress লোকেশন (wp-content/uploads) থাকে; তবে, নেটওয়ার্ক সাইটের অনন্য ID প্রতিফলিত করতে এর path পরিবর্তিত হয়। ফলে একটি নেটওয়ার্ক সাইটের মিডিয়া ফাইলগুলো wp-contents/uploads/site/[id] হিসেবে দেখা যায়।
Permalinks
আমরা আগে উ ল্লেখ করেছিলাম যে subdirectory কনফিগারেশনের তুলনায় subdomain-এর স্পষ্ট সুবিধা রয়েছে এবং এটি সেই বিষয়: paths।
Subdirectory কনফিগারেশনে, মূল সাইট (নেটওয়ার্ক প্রতিষ্ঠিত হওয়ার সময় তৈরি প্রথম সাইট) এবং নেটওয়ার্ক সাবসাইটগুলোকে ডোমেইন নাম থেকে একই path শেয়ার করতে হয়। এতে প্রচুর সংঘর্ষের সম্ভাবনা থাকে।
Posts-এর জন্য, নেটওয়ার্ক সাইটগুলোর সাথে সংঘর্ষ এড়াতে মূল সাইটে একটি বাধ্যতামূলক /blog/ path যোগ করা হয়। এর মানে 'Post name'-এর মতো সুন্দর permalinks domain.name/blog/post-name/ হিসেবে উপস্থাপিত হবে
Subdomain কনফিগারেশনে এই পদক্ষেপের প্রয়োজন নেই কারণ প্রতিটি নেটওয়ার্ক সাইট সম্পূর্ণ ডোমেইন পৃথকীকরণের সুবিধা পায় এবং তাই একটি একক path-এর উপর নির্ভর করতে হয় না। তারা বরং তাদের subdomain-এর উপর ভিত্তি করে নিজস্ব স্বতন্ত্র paths বজায় রাখে।
Static Pages
Subdirectory কনফিগারেশনে নামকরণের সংঘর্ষের সম্ভাবনা static pages-এও প্রসারিত হয় কারণ মূল সাইট এবং নেটওয়ার্ক সাইটগুলো একই path শেয়ার করে।
এটি প্রতিরোধ করতে, WordPress কিছু সাইটের নাম blacklist করার একটি উপায় প্রদান করে যাতে সেগুলো প্রথম সাইটের নামের সাথে সংঘর্ষ না করে। সাধারণত network administrator মূল সাইটের pages-এর root paths এখানে লিখে দেন।
Subdomain কনফিগারেশনে নামকরণের সংঘর্ষের সম্ভাবনা subdomain দ্বারা হ্রাস পায় কারণ এটি নেটওয়ার্ক সাইটের জন্য অনন্য এবং মূল সাইটের সাথে কোনোভাবেই সম্পর্কিত নয়।
Registration
WordPress Multisite-এর network settings-এ বেশ কিছু নতুন user registration অপশন পাওয়া যায়, যা নতুন এবং বিদ্যমান users-দের সাইট তৈরি করতে দেয়।
স্বতন্ত্র WordPress ইনস্টলেশনের বিপরীতে, নেটওয়ার্ক সাইটগুলো user registration অনুমোদন বা সেই registration-গুলোকে roles-এ বরাদ্দ করার পরিচিত অপশনগুলো বজায় রাখে না।
User অ্যাকাউন্ট তৈরি হলে সেগুলো নেটওয়ার্ক লেভেলে তৈরি হয়। তাই কোনো একটি নির্দিষ্ট সাইটের অন্তর্গত না হয়ে তারা নেটওয়ার্কের অন্তর্গত হয়। এর কিছু স্পষ্ট সুবিধা এবং অসুবিধা আছে।
উদাহরণস্বরূপ, ধরুন আপনার WordPress Multisite সংবাদ এবং তথ্যের ব্যবসায় আছে। আপনি multisite প্রতিষ্ঠা করবেন এবং তারপর ফিনান্স, টেকনোলজি, বিনোদন এবং অন্যান্য আগ্রহের ক্ষেত্রগুলোর জন্য নেটওয়ার্ক সাইট তৈরি করবেন, সাথে plugins ও themes-এর উপর সামগ্রিক নিয়ন্ত্রণ বজায় রাখবেন। প্রতিটি নেটওয়ার্ক সাইট তখন custom post types বা সাধারণ post categories-এর চেয়ে তাদের নেটওয়ার্ক সাইটের চেহারা, অনুভূতি এবং user experience-এর উপর অনেক বেশি নিয়ন্ত্রণ পাবে।
এই পরিমাণে যখন একজন user লগ ইন করেন তারা নেটওয়ার্কে লগ ইন করেন এবং শেষ পর্যন্ত প্রতিটি নেটওয়ার্ক সাইটেও ল গ ইন হন যা একটি নির্বিঘ্ন অভিজ্ঞতা প্রদান করে। আপনার সংবাদ সাইট যদি subscription ভিত্তিক হয় এটি আদর্শ সমাধান এবং ফলাফল হবে।
তবে, যদি multisite-এর উদ্দেশ্য হয় বিচ্ছিন্ন নেটওয়ার্ক সাইট অফার করা যাদের একে অপরের সাথে কোনো সম্পর্ক নেই, তাহলে user roles পরিচালনা করতে প্রায় সবসময়ই বাহ্যিক বা অতিরিক্ত plugins প্রয়োজন হয়।
Domain এবং SSL
আসুন এমন একটি WordPress Multisite ইনস্টলেশনের কথা বলি যা প্রায়ই আমাদের নজর এড়িয়ে যায় - WordPress.com। এটি এখন পর্যন্ত সবচেয়ে বিস্তৃত WordPress multisite-এর উদাহরণ এবং একটি উদ্দেশ্য পূরণে কাস্টমাইজ ও মোল্ড করার এর ব্যাপক ক্ষমতা প্রদর্শন করে।
আজকের আধুনিক ইন্টারনেটে SSL-এর ব্যবহার প্রায় বাধ্যতামূলক এবং WordPress multisite-এর network administrators শীঘ্রই এই চ্যালেঞ্জগুলোর মুখোমুখি হন।
Subdomain কনফিগারেশনে সাইটগুলো root domain name-এর উপর ভিত্তি করে তৈরি হয়। তাই 'site1' নামের সাইট 'site1.domain.com' হিসেবে তৈরি হবে। একটি wildcard SSL certificate ব্যবহার করে, একজন network administrator সফলভাবে এই চ্যালেঞ্জ মোকাবেলা করতে পারেন এবং নেটওয়ার্কের জন্য SSL encryption ক্ষমতা প্রদান করতে পারেন।
WordPress Multisite-এ একটি domain mapping ফাংশন আছে যা নেটওয়ার্ক সাইটগুলোকে custom domain names বা নেটওয়ার্কের root domain থেকে ভিন্ন domain names-এর সাথে যুক্ত করতে দেয়।
Network administrators-দের জন্য এটি domain name কনফিগারেশন এবং SSL certificates ইস্যু ও রক্ষণাবেক্ষণ উভয় ক্ষেত্রেই অতিরিক্ত জটিলতার স্তর তৈরি করে।
এই পরিমাণে যদিও WordPress Multisite www.anotherdomain.com-কে 'site1'-এ map করার একটি উপায় প্রদান করে, network administrator-কে DNS entries এবং SSL certificates বাস্তবায়নের বাহ্যিক পরিচালনার চ্যালেঞ্জ মোকাবেলা করতে হয়।