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

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

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

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 روش حالت های کلی حل مسئله هستند و شما باید با توجه به ملزومات سایت خود روش را انتخاب کنید . من خودم روش دوم را بر روی مجموعه بزرگی از سایت ها اجرا کرده و نتیجه تا به حال موفقیت آمیز بوده است. شما نیز اگر علاقه مند به اجرای این روش ها هستید ، تجربیات و سوالات خود را در همین سایت با ما در میان بگذارید تا با هم موجب پیشرفت یکدیگر شویم. در مقاله بعدی سعی می کنیم بر روی روش چهارم بررسی دقیق تری داشته باشیم.

تگ های مطلب: 

دیدگاه‌ها

ممنون مقاله خوب و روانی بود.

ممنون مقاله خوب و روانی بود. شخصا نکات تازه ای رو یاد گرفتم

سلام ، مقاله خوبی بود،

سلام ، مقاله خوبی بود، یک سوال داشتم در مورد مولتی سایت مثل سایت یاهو ، می خواهم روی ساب دومین بخش های مختلفی رو ایجاد کنم روی سرور های متفاوت ، می خواهم کاربرها بین این سایت های اشتراک گذاشته بشه. از کدوم روش باید استفاده کرد؟

طبق نوشته ها به نظر میرسه

طبق نوشته ها به نظر میرسه آخرین راه بهترین راهه برای کاری که شما میخواید انجام بدید

با افزونه Doamin Access میشه

با افزونه Doamin Access میشه دیتابس چند تا سایت رو به هم متصل کرد؟ سایت های جدا از هم .

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

مدت کمی نیست با دروپال کار می‌کنم، اما الآن متوجه شدم چرا نام‌گذاری پوشه‌های داخل sites به شکل default و all است، خیلی برایم جالب بود. مطلب بسیار مفیدی بود، ممنون.

روش دوم

سلام خسته نباشید مطالب زیبا و آموزنده بود من یک سایت با ساب دومین های مختلف دارم حالا می خواهم روش دوم را استفاده کنم مشکل من اینتست که در آموزش های مختلف روی وب دیدم نوشته است که نام شاخه که در sites می سازید باید هم نام با نام دومین باشد لطفا راهنمایی بفرمایید چکار کنم چون نام بعضی از آنها بسیار طولانی است .

خوشحالم

در پاسخ به این پرسش شما باید بگویم که اگر مثلا شما سایتی با نام drupalion.com دارید و قصد دارید ساب دومینی با نام ilovedrupal.drupalion.com بسازید که نامی طولانی است باید در پوشه sites یک پوشه با همین نام (ilovedrupal.drupalion.com) بسازید و نه فقط نام ساب دومین.اگر سوال چیز دیگری بود بفرمایید؟

روش دوم

حالا اگر بخواهیم از همان نام ساب دومین ilovedrupal استفاده کنیم و فقط این نام را بسازیم راه حلی برای اتصال به دومین ilovedrupal.drupalion.com دارید

نفهمیدم

می خواهید ساب دومین ilovedrupal را به دومین ilovedrupal.drupalion.com وصل کنید؟

بار سرور

سلام. من دروپال مالتی یوزر (البته پرس فلو) نصب کردم. میخوام سایت، جدا از فارم (انجمن) باشه. اما خب هسته که یکیه ! دیتا بیس هم یکیه (4 تا جدول مشترک دارم (کاربران) و بقیه جدول ها دوبل هست و پیشوندشون فرق داره) ! الان سوالم اینه که باری که رو سرور هست و به طور کل پرفورمنس سایت چه تغییری میکنه و فرقش با حالتی که فارم و سایت یکی باشن چیه !؟

مرسی - عالی بود.

مرسی - عالی بود.

مشکل نصب

سلام میخوام روی یک سرور غیر رایگان دروپال و نصب کنم ولی در مرحله ی وارد کردن اطلاعات دیتابیس بعد از زدن کلید ذخیره و رفتن به مرحله بعد صفحه رفرش می شه و همونجا میمونه! پیغام خطایی هم نمیده! دیتابیس جدید ساختم با اسم متفاوت باز هم همون مشکل پایدار بود ! ممنون میشم راهنمایی کنی دروپالم هم نسخه 6 هست

مشکلش این بود که فایل default

مشکلش این بود که فایل default.config.php به config.php تغییر نام داده بودم و کپی نکرده بودم

مشكل در نصب دروپال

سلام . وقتي بنده اقدام به نصب دروپال ميكنم به چنين پيغامي بر ميخورم . لطفا مرا راهنمايي كنيد. لينك تصوير پيغام http://negah85.persiangig.com/image/Eror.jpg

خوب از پیغام مشخصه که نمیتونه

خوب از پیغام مشخصه که نمیتونه به پایگاه داده شما وصل شه. بیشتر اوقات این به دلیل اشتباه وارد کردن نام کاربری و کلمه عبور رخ میده. مطمئن شید که نام کاربری و کلمه عبور رو درست وارد کردید.

چندين بار امتحان كردم . يوزر

چندين بار امتحان كردم . يوزر و پس درست وارد ميشه ولي بازم پيغام خطا ميده.

من روش دوم و امتحان کردم،

من روش دوم و امتحان کردم، پوشه رو به درستی توی site ایجاد کردم، با نام test.72min.ir و آدرس subdomain هم با آدرسی مشابه نام همین پوشه فقط ایجاد کردم ولی وقتی سایت و باز کردم پیغام خطای 403 میداد. البته خودم دقیقا نفهمیدم بعد از ساختن پوشه باید چه کاری انجام بدم؟ آیا احتیاج به تنظیم خاصی در دروپال داره ؟

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

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

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

درباره ما

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

تماس با ما

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

logo-samandehi