دیدگاه جدیدی بگذارید

نصب دروپال به صورت مولتی سایت

نصب دروپال به صورت مولتی سایت

معرفی
دروپال یک سیستم مدیریت محتوای فوق العاده است.اگر شما در حال ارزیابی کردن سیستم های مدیریت محتوا هستید ، چه قبلا از دروپال استفاده می کرده اید یا این که هم اکنون قصد استفاده از آن را دارید ، این مقاله به شما در فهم استفاده از مولتی سایت دروپال برای سایت های متوسط و بزرگ کمک خواهد کرد. هدف این مقاله توضیح راه حل های مختلف برای مدیریت سایت های مرتبط است. ما محبوب ترین راه حل ها را بررسی می کنیم و نقاط ضعف و قوت هر یک را توضیح می دهیم. در آینده در یک مقاله ما به بررسی راه حل ها برای ساخت یک سایت چند زبانه خواهیم پرداخت. در این مقاله ما راه حل های طراحی زیر را برای ساخت و مدیریت چندین سایت مورد بررسی قرار می دهیم:

1- نصب چندین دروپال و چندین دیتابیس 
2- چندین سایت در یک دروپال و چندین دیتابیس 
3- چندین سایت در یک دروپال و چندین دیتابیس با جداول دیتابیس مشترک
4- چندین سایت در یک دروپال با استفاده از ماژولAccess Domain و یک دیتابیس

1- چندین دروپال معماری چندین دروپال ، سایت ها را کاملا از هم جدا می کند. در بیش تر اوقات بهترین راه حل نیست بخصوص زمانی که بخواهیم چندین سایت را با هم تلفیق کنیم. معمولا راه حل بهتر داشتن چندین سایت در یک بار نصب دروپال است ( استفاده از یک فایل نصبی) ولی ما این راه حل را نیز توضیح می دهیم به دلیل این که ممکن است برای کاربری این راه حل بهتری باشد. در حالت کلی پیاده سازی چندین سایت مرتبط در چندین نصب دروپال می تواند مشکلات عظیمی ایجاد کند اما در برخی موارد می تواند یک راه حل مفید باشد. برای نمونه اگر یک شرکت سایتی برای شعبه اصفهان بخواهد و سایتی دیگر برای شعبه تهران که به صورت مستقل مدیریت می شوند بهترین راه حل همین روش است، حتی اگر هر دوی این سایت ها بر روی یک سرور قرار گیرند.

image00.png

 

 

 

 

مزایای داشتن چندین نصب از دروپال عبارتند از :

  • اسکلت سایت ها مستقل خواهد بود.
  • سایت ها به صورت مستقل مدیریت خواهند شد.
  • سایت ها می توانند روی محیط های مختلف نصب شوند.

اشکال این نوع طراحی نیز مشخص است:

  • اشتراک اطلاعات بین این سایت ها به آسانی امکان پذیر نخواهد بود.

در نظر داشته باشید به دلیل این که ما از پایگاه داده های مشترک استفاده نمی کنیم ، نمی توانیم به محتوای سایر سایت ها به صورت مستقیم دسترسی داشته باشیم به جز پیاده سازی روش های اشتراک خاصی مانند RSS feeds و web services و سایر موارد. و به دلیل اینکه کاربران یک سایت کاملا جدا از کاربران سایت دیگر هستند ، پیاده سازی یک نام کاربری و رمز عبور مشترک بسیار دردناک خواهد بود. شما نمی توانید کاربران مشترک داشته باشید ، مگر این که به روش خود آن را پیاده سازی کنید که از نظر پیاده سازی و حفظ و نگهداری بسیار دشوار خواهد بود. البته می توانید از اتصال به سرور LDAP نیز بهره ببرید که در مقاله ای جداگانه این روش را بررسی خواهیم کرد.

  • نگهداری از آن سخت تر می باشد

در حالت کلی ، نگهداری از سایت ها در این حالت یک برگشت به عقب است : هنگامی که مشکل را حل کردید ، آپدیت را اجرا کردید یا هر تغییر دیگری دادید ، اگر خواستار اجرا شدن آن بر تمامی سایت ها هستید ، باید به صورت دستی بر روی تک تک سایت ها اجرا کنید. قوانین ، مجوزها و کاربران نیز باید به صورت جداگانه مدیریت شوند.

2- نصب یک دروپال ، چندین پایگاه داده دروپال امکان مدیریت چندین سایت از طریق یک بسته دروپال را فراهم می کند. این ویژگی بسیار خوبی از طرف دروپال است. تمامی سایت های ساخته شده با دروپال باید در داخل پوشه sites نگهداری شوند. پوشه sites می تواند به هر تعداد که می خواهیم سایت داشته باشد. دروپال بر اساس URL هر سایتی را به پوشه خودش راهنمایی می کند. اگر هیچ یک از پوشه ها با URL ما همخوانی نداشت ، کاربر به سایتی که در پوشه “default” قرار دارد راهنمایی می شود. همچنین ما می توانیم ماژول ها و قالب ها را با قرار دادن در پوشه “all” بین تمامی سایت ها به اشتراک بگذاریم. ساختار پوشه به صورت شکل زیر خواهد بود: 1.jpeg

تمامی ماژول ها و قالب ها ی موجود در پوشه “all” بین تمامی سایت ها مشترک خواهد بود. این به خصوص زمانی مفید است که ما بخواهیم یک قالب خاص برای تعداد زیادی سایت استفاده شودو تغییرات در قالب کم باشد. هر تغییر تنها یک بار صورت گرفته و بلافاصله بر روی تمامی سایت ها اعمال می شود.

image02.png

مزایای این روش به شرح زیر است:

  • تمامی ماژول ها و قالب ها می توانند در سایت ها استفاده شوند.
  • به روز رسانی ها در تمامی سایت ها اعمال می شود.

زمانی که شما یک ماژول به اشتراک درآمده را به روز رسانی می کنید ، باید تمامی سایت های خود را در حالت نگهداری (آفلاین) قرار داده و پس از به روز رسانی آن ماژول ، فایل “update.php” را برای تمامی سایت ها اجرا کنید. در حالت کلی داشتن یک کد مشترک برای تمامی سایت ها یک مزیت است ولی مواردی پیش می آید که این کار یک دوباره کاری می شود: برای مثال زمانی که شما می خواهید هیچ کدام از سایت های شما آفلاین نشوند ولی برخی از سایت ها نیاز به آپدیت های مستمر دارند. در رابطه با داده ها ، ما هیچ داده ای را به اشتراک نمی گذاریم. زمانی که ما از داده صحبت می کنیم به تمامی اطلاعاتی که داخل پایگاه داده ذخیره می شود اشاره می کنیم که شامل محتوا ، تنظیمات و کاربران است. ما لزوما درباره پایگاه داده های متفاوت صحبت نمی کنیم . سایت های مختلف می توانند از یک پایگاه داده استفاده کنند به شرطی که از پیشوندهای مختلف برای جداول خود در دیتابیس بهره ببرند. به دلیل این که ما اشتراک داده نداریم ، این راه حل نیز برخی از اشکالات روش قبلی را دارد. اشکال اصلی این است که داده ها و کاربران بین سایت ها مشترک نیستند.

3- جداول مشترک

image03.png

در این روش ، چندین سایت در یک بسته دروپال اجرا می شوند ، با چندین جدول مشترک بین سایت ها. دروپال گزینه تعریف یک پیشوند پیش فرض و/یا یک پشوند خاص برای جداول خاص را فراهم می کند. با استفاده از این روش ، ما می توانیم چندین سایت بسازیم که بر روی چندین جدول مشترک اجرا می شوند. این گزینه بسیار کاربردی و جالبی به نظر می رسد ولی درحقیقت از طرف دروپال پیشنهاد نمی شود.

به نقل از سایت دروپال:

این روش نتایج غیر قابل پیش بینی به بار می آورد ، با توجه به این که شما کدام جداول را برای اشتراک گذاشتن درنظر گرفته اید،همچنین به روز رسانی نسخه های مشکل دار و موارد امنیتی می تواند به شما آسیب برساند.

با این حال ، این روش زمانی که بخواهیم سایت های متفاوت ، که از یک کد استفاده می کنند ( ماژول ها و قالب ها ) و کاربران مشترکی دارند و به یک بار ورود نیاز دارند داشته باشیم ، مفید خواهد بود. طراحی سیستم باید با دقت صورت گیرد. شما باید هر ماژول و جدولی را درنظربگیرید که آیا می خواهید به صورت مشترک باشد یا این که به صورت جداگانه مدیریت شود. چندین منطقه حساس دراین طراحی ها وجود دارد: مثلا اگر شما بخواهید کاربران مشترک در سایت ها داشته باشید ولی مطالب سایت ها مشترک نباشند ، نباید جداولی که هم به کاربران و هم به مطالب لینک هستند را به صورت مشترکی درآورید. اگر شما کاربران را مشترک می کنید ، باید قوانین ، مجوزها و غیره را نیز در نظر بگیرید. وابسته به ماژولی که استفاده می کنید ممکن است این ملزومات طولانی شوند.

4- استفاده از ماژول Doamin Access

image04.png

آخرین راه حل استفاده از ماژول Doamin Access می باشد. این مجموعه از ماژول ها به ما اجازه می دهند چندین سایت در یک بسته دروپال داشته باشیم که از یک پایگاه داده و جدول استفاده می کنند. به جای اینکه از جداول مختلف استفاده کنید ، مانند روش قبل ، ماژول Doamin Access با توجه به سیستم دسترسی به محتوای دروپال مشخص می کند کدام محتوا در کدام سایت ها نمایش داده شود. به صورت کلی این پیشنهاد من است که برای سایت هایی که نیاز به اشتراک اطلاعات و/یا قالب ها و/یا کاربران و/یا تنظیمات دارند از این روش استفاده کنید. بیش تر تنظیمات سایت بر روی تمامی سایت ها مشترک خواهد بود و برخی از تنظیمات بر روی هر سایت جداگانه اعمال می شود. همچنین محتواها و کاربران بین سایت ها مشترک خواهند بود. Domain Access اجازه می دهد یک محتوا بر روی یک سایت ، برخی از سایت ها و یا تمامی سایت ها نمایش داده شود. این مورد برای کاربران نیز صادق است. هر سایت می تواند به طور جداگانه تنظیم شود تا قالب متفاوتی داشته باشد. اما نمی توانیم بر دسترسی به ماژول ها نظارت کنیم ، یعنی تمامی ماژول ها برای تمامی سایت ها قابل دسترسی خواهند بود. ماژول Domain Access شامل موارد زیر است که در صفحه این ماژول در سایت دروپال قابل دسترسی است:

  • Domain Alias :
  • Domain Configuration
  • Domain Content
  • Domain Navigation
  • Domain Prefix
  • Domain Settings
  • Domain Source
  • Domain Strict
  • Domain Theme
  • Domain User
  • Domain Views

و همچنین در جامعه دروپال کاران نیز چندین افزونه برای این ماژول در دسترس می باشد که اجازه می دهد سایت ها سفارشی تر بشوند. برخی از این افزونه ها عبارتند از :

  • Domain Locale
  • Domain Access Advanced
  • Domain Actions
  • Domain Blocks
  • Domain Geolocalization
  • Domain GMap
  • Domain Login Restrict
  • Domain Menu
  • Domain Node Type
  • Domain Nodequeue Tab
  • Domain Relationships
  • Domain Taxonomy
  • Domain Toggle
  • Domain User Default
  • User Import Domain Access
  • Ubercart Domain Access

نتیجه گیری : در پایان این 4 روش حالت های کلی حل مسئله هستند و شما باید با توجه به ملزومات سایت خود روش را انتخاب کنید . من خودم روش دوم را بر روی مجموعه بزرگی از سایت ها اجرا کرده و نتیجه تا به حال موفقیت آمیز بوده است. شما نیز اگر علاقه مند به اجرای این روش ها هستید ، تجربیات و سوالات خود را در همین سایت با ما در میان بگذارید تا با هم موجب پیشرفت یکدیگر شویم. در مقاله بعدی سعی می کنیم بر روی روش چهارم بررسی دقیق تری داشته باشیم.

تگ های مطلب: 

CCBot/2.0 (https://commoncrawl.org/faq/)

آخرین ارسال ها

محتواهای محبوب

درباره ما

Author
اینجا دروپال یعنی همه چیز. در مورد دروپال صحبت میکنیم. ماژول هامون رو به اشتراک میزاریم در مورد قالب دروپال ، فروشگاه دروپال، دروپال فارسی و تاریخ شمسی دروپال صحبت میکنیم و هرچیزی که در مورد طراحی سایت با دروپال میدونیم به هم انتقال میدیم. دروپالیون یک سایت شخصی نیست. ما دست همه کسانی که برای پیشرفت دروپال تلاش میکنند رو میفشاریم و با آغوش باز اونها رو در این سایت میپذیریم.

تماس با ما

با ما تماس بگیرید.

logo-samandehi