آشنایی با 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] ظاهر میشوند.
پیوندهای یکتا (Permalinks)
قبلاً اشاره کردیم که مزایای مشخصی برای subdomain نسبت به پیکربندی subdirectory وجود دارد و اینجا آن را میبینیم: مسیرها.
در پیکربندی subdirectory، سایت اصلی (اولین سایتی که هنگام ایجاد شبکه ساخته میشود) و زیرسایتهای شبکه باید مسیر یکسانی از دامنه را به اشتراک بگذارند. این پتانسیل تعداد زیادی تداخل را ایجاد میکند.
برای نوشتهها، یک مسیر اجباری /blog/ به سایت اصلی اضافه میشود تا از تداخل با سایتهای شبکه جلوگیری شود. این یعنی پیوندهای یکتای زیبا مثل 'Post name' به صورت domain.name/blog/post-name/ نمایش داده میشوند.
در پیکربندی subdomain این اقدام لازم نیست چون هر سایت شبکه از جداسازی کامل دامنه بهرهمند است و نیازی به اتکا به یک مسیر واحد ندارد. در عوض مسیرهای مجزای خود را بر اساس subdomain حفظ میکنند.
صفحات ثابت
در پیکربندی subdirectory پتانسیل تداخل نامها به صفحات ثابت هم گسترش مییابد چون سایت اصلی و سایتهای شبکه مسیر یکسانی دارند.
برای جلوگیری از این مشکل، وردپرس راهی برای لیست سیاه کردن نامهای خاص سایت فراهم میکند تا با نامهای سایت اول تداخل نداشته باشند. معمولاً مدیر شبکه مسیرهای ریشه صفحات سایت اصلی را وارد میکند.
در پیکربندی subdomain احتمال تداخل نامها توسط subdomain کاهش مییابد چون برای سایت شبکه یکتاست و هیچ ارتباطی با سایت اصلی ندارد.
ثبتنام
در تنظیمات شبکه WordPress Multisite چندین گزینه جدید ثبتنام کاربر در دسترس است که به کاربران جدید و موجود امکان ایجاد سایت میدهد.
برخلاف نصبهای مستقل وردپرس، سایتهای شبکه گزینههای آشنای اجازه ثبتنام کاربر یا اختصاص آن ثبتنامها به نقشها را ندارند.
وقتی حسابهای کاربری ایجاد میشوند، در سطح شبکه ساخته میشوند. بنابراین به جای تعلق به یک سایت خاص، به شبکه تعلق دارند. این مزایا و معایب مشخصی دارد.
مثلاً فرض کنید WordPress Multisite شما در کسبوکار اخبار و اطلاعات است. شما multisite را راهاندازی میکنید و سپس سایتهای شبکه برای مالی، فناوری، سرگرمی و سایر حوزههای مورد علاقه ایجاد میکنید در حالی که کنترل کلی پلاگینها و قالبها را حفظ میکنید. هر سایت شبکه به نوبه خود کنترل بسیار بیشتری روی ظاهر و تجربه کاربری سایت شبکه خود نسبت به custom post type ها یا دستهبندیهای معمولی نوشتهها خواهد داشت.
به این ترتیب وقتی کاربر وارد میشود، به شبکه وارد میشود و در نهایت به هر سایت شبکه هم وارد میشود تا تجربهای یکپارچه داشته باشد. اگر سایت خبری شما اشتراکی بود، این راهحل و نتیجه ایدهآل خواهد بود.
اما اگر ماهیت و هدف مورد نظر multisite ارائه سایتهای شبکه متفاوت باشد که هیچ ارتباطی با یکدیگر ندارند، تقریباً همیشه نیاز به پلاگینهای خارجی یا اضافی برای دستکاری نقشهای کاربر خواهد بود.
دامنه و SSL
بیایید در مورد نصب WordPress Multisite صحبت کنیم که تقریباً از توجه ما دور میماند - Wordpress.com. این تاکنون گستردهترین نمونه از WordPress Multisite است و تواناییهای وسیع آن را برای سفارشیسازی و شکلدهی برای تحقق یک هدف نشان میدهد.
این روزها در اینترنت مدرن استفاده از SSL تقریباً اجباری است و مدیران شبکه WordPress Multisite به زودی با این چالشها مواجه میشوند.
در پیکربندی subdomain سایتها بر اساس دامنه ریشه ایجاد میشوند. بنابراین سایتی با نام 'site1' به صورت 'site1.domain.com' ایجاد میشود. با استفاده از گواهی SSL wildcard، مدیر شبکه میتواند با موفقیت این چالش را برطرف کند و قابلیت رمزنگاری SSL را برای شبکه فراهم کند.
WordPress Multisite دارای قابلیت domain mapping است که امکان میدهد سایتهای شبکه با نامهای دامنه سفارشی یا دامنههایی متفاوت از دامنه ریشه شبکه مرتبط شوند.
برای مدیران شبکه این یک لایه پیچیدگی اضافی هم در پیکربندی نام دامنه و هم در صدور و نگهداری گواهیهای SSL ایجاد میکند.
به این ترتیب در حالی که WordPress Multisite راهی برای اجازه نگاشت www.anotherdomain.com به 'site1' فراهم میکند، مدیر شبکه با چالش مدیریت خارجی رکوردهای DNS و پیادهسازی گواهیهای SSL مواجه است.
Ultimate Multisite
با درک تفاوتهای بین نصب مستقل وردپرس و نصب Multisite، بیایید ببینیم Ultimate Multisite چگونه ابزار نهایی برای ارائه وبسایت به عنوان سرویس است.