آشنایی با Ultimate Multisite
Ultimate Multisite یک پلاگین WordPress Multisite است که به شما امکان میدهد سرویس WaaS یا «وبسایت به عنوان سرویس» را به مشتریان خود ارائه دهید. پیش از آنکه وارد جزئیات شویم و ببینیم Ultimate Multisite چگونه میتواند به کسبوکار و مشتریان شما کمک کند، باید با برخی مفاهیم پایه آشنا شویم.
WordPress Multisite چیست؟
اکثر ما با نصب استا ندارد وردپرس آشنا هستیم. معمولاً یا از طریق کنترل پنل هاستینگ سایت را میسازید یا اگر اهل چالش باشید، یک وبسرور و دیتابیس جدید راهاندازی میکنید، فایلهای اصلی را دانلود کرده و فرایند نصب را شروع میکنید.
این روش برای میلیونها سایت وردپرسی در سراسر دنیا کار میکند، اما بیایید از دید یک آژانس یا ارائهدهنده هاستینگ به موضوع حجم کار نگاه کنیم.
ساختن یک سایت وردپرسی یا حتی صد سایت از طریق کنترل پنل خودکار کار سادهای است، اما وقتی نوبت به مدیریت این سایتها میرسد، مشکلات خودشان را نشان میدهند. اگر سایتها بدون مدیریت رها شوند، هدف آسانی برای بدافزارها خواهید بود. مدیریت کردن هم نیازمند تلاش و منابع است و اگرچه ابزارها و پلاگینهای خارجی برای سادهتر کردن مدیریت سایتهای وردپرسی وجود دارند، اما از آنجا که مشتریان دسترسی مدیریتی دارند، همه این تلاشها میتواند به راحتی بیاثر شود.
وردپرس در هسته خود قابلیتی به نام «Multisite» دارد که ریشهاش به سال ۲۰۱۰ و عرضه WordPress 3.0 برمیگردد. از آن زمان تاکنون بازنگریهای متعددی برای افزودن ویژگیهای جدید و تقویت امنیت روی آن انجام شده است.
به زبان ساده، WordPress Multisite را میتوان اینگونه تصور کرد: یک دانشگاه یک نصب واحد از وردپرس دارد، اما هر دانشکده سایت وردپرسی مخصوص به خود را مدیریت میکند.
برای درک بهتر این مفهوم، بیایید نگاهی به برخی اصطلاحات پایه بیندازیم که هم در مستندات Ultimate Multisite و هم در جامعه وردپرس رایج هستند.
شبکه (Network)
در وردپرس، شبکه multisite جایی است که تعدادی زیرسایت از یک داشبورد واحد مدیریت میشوند. اگرچه روش ایجاد شبکه multisite در هاستینگهای مختلف متفاوت است، نتیجه نهایی معمولاً چند دستورالعمل اضافی در فایل wp-config.php است که به وردپرس میگوید در این حالت خاص کار کند.
تفاوتهای مشخصی بین شبکه multisite و نصب مستقل وردپرس وجود دارد که به اختصار بررسی میکنیم.
Subdomain در مقابل Subdirectory
یکی از اولین تصمیماتی که باید بگیرید این است که آیا نصب multisite با subdirectory کار کند یا subdomain. Ultimate Multisite با هر دو گزینه به خوبی کار میکند، اما تفاوتهای معماری بین این دو پیکربندی وجود دارد.
در پیکربندی subdirectory، سایتهای شبکه مسیری بر اساس دامنه اصلی میگیرند. مثلاً سایتی با نام 'site1' آدرس کامل https://domain.com/site1 را خواهد داشت. در پیکربندی subdomain، سایت شبکه subdomain خاص خود را از دامنه اصلی میگیرد. بنابراین سایتی با نام 'site1' آدرس کامل https://site1.domain.com/ را خواهد داشت.
هر دو گزینه کاملاً معتبر هستند، اما استفاده از subdomain مزایایی دارد که البته نیاز به فکر و برنامهریزی بیشتری در معماری دارد.
از نظر DNS، استفاده از subdirectory چالش نسبتاً سادهای است. چون سایتهای شبکه فرزندان مسیر والد هستند، فقط یک رکورد دامنه برای دامنه اصلی لازم است. برای subdomain چالش کمی پیچیدهتر است و نیاز به یک رکورد CNAME جداگانه برای هر سایت شبکه یا یک رکورد wildcard (*) در DNS دارید.
موضوع دیگری که باید در نظر گرفت، SSL و صدور و استفاده از گواهیهای SSL است. در پیکربندی subdirectory میتوان از یک گواهی دامنه واحد استفاده کرد چون سایتهای شبکه صرفاً مسیرهایی از دامنه اصلی هستند. بنابراین گواهی برای domain.com به خوبی SSL را برای https://domain.com/site1، https://domain.com/site2 و غیره فراهم میکند.
در پیکربندی subdomain استفاده از گواهی SSL wildcard یکی از رایجترین گزینههاست. این نوع گواهی SSL رمزنگاری را برای یک دامنه و _subdomain_های آن فراهم میکند. بنابراین گواهی SSL wildcard رمزنگاری را برای https://site1.domain.com، https://site2.domain.com و خود https://domain.com فراهم میکند.
اگرچه گزینههای دیگری هم وجود دارد، اما معمولاً محدودیتهایی در دامنه کاربرد دارند و نیاز به پیکربندی و بررسی بیشتری از نظر تناسب دارند.
پلاگینها و قالبها
آنچه وردپرس میدهد، پس هم میگیرد - حداقل از دید مشتری. در نصب مستقل وردپرس اگر مدیر سایت یک پلاگین بد نصب کند یا نصب خود را بهروز نگه ندارد، تنها قربانی خودش است. اما مدیر سایتی که پلاگین بد روی نصب multisite نصب کند، همه سایتهای شبکه را قربانی میکند.
به همین دلیل وقتی وردپرس به صورت multisite پیکربندی میشود، قابلیت نصب پلاگین و قالب را از مدیران سایت میگیرد و به یک نقش جد ید به نام مدیر شبکه یا 'super admin' منتقل میکند. این نقش ممتاز میتواند تصمیم بگیرد که آیا مدیران سایتهای شبکه منوی پلاگینها را در داشبورد خود ببینند یا نه، و اگر بله، آیا این مجوزها شامل فعالسازی یا غیرفعالسازی پلاگینها هم میشود.
به این ترتیب مدیر شبکه مسئول نصب پلاگینها و قالبها در شبکه است و مجوز استفاده از آنها را به سایتهای شبکه واگذار میکند. مدیران سایت نمیتوانند پلاگین و قالب نصب کنند یا به پلاگینها و قالبهایی که به سایتشان اختصاص داده نشده دسترسی داشته باشند.
کاربران و مدیران
در WordPress Multisite همه سایتهای شبکه دیتابیس یکسانی دارند و بنابراین کاربران، نقشها و قابلیتهای یکسانی را به اشتراک میگذارند. بهترین راه برای درک این موضوع این است که همه کاربران عضو شبکه هستند، نه یک سایت خاص.
با این درک، ممکن است ایجاد کاربر نامطلوب باشد و به همین دلیل WordPress Multisite این قابلیت را از مدیران سایت میگیرد و به مدیر شبکه منتقل میکند. مدیر شبکه به نوبه خود میتواند مجوزهای لازم را به مدیر سایت واگذار کند تا بتو اند برای سایت خود حساب کاربری ایجاد کند.
همانطور که گفته شد، اگرچه حسابهای کاربری به نظر مرتبط با سایت هستند، در واقع به شبکه تعلق دارند و بنابراین باید در سراسر شبکه یکتا باشند. ممکن است مواردی پیش بیاید که نامهای کاربری به این دلیل قابل ثبت نباشند.
اگرچه این مفهوم در سیستمهای سازمانی غریبه نیست، این منبع واحد ثبتنام و احراز هویت کاربر اغلب برای افرادی که با نصب مستقل وردپرس آشنا هستند - جایی که مدیریت کاربر تا حدی سادهتر است - مفهوم دشواری است.
رسانه
در حالی که سایتهای شبکه در WordPress Multisite دیتابیس مشترکی دارند، مسیرهای جداگانهای در فایلسیستم برای فایلهای رسانهای دارند.
مسیر استاندارد وردپرس (wp-content/uploads) باقی میماند؛ اما مسیرش تغییر میکند تا شناسه یکتای سایت شبکه را منعکس کند. در نتیجه فایلهای رسانهای برای یک سایت شبکه به صورت wp-contents/uploads/site/[id] ظاهر میشوند.