Коли я повинен використовувати налаштування на багато сайтів?


13

У мене є 4 сайти Drupal, які не мають нічого спільного між собою, за винятком того, що всі вони працюють на Drupal і всі вони управляються мною.

Модулі, які потребують кожного сайту, будуть різними, але вони, ймовірно, мають деякі невеликі підмножини модулів.

Чи є ця ситуація хорошим кандидатом для використання конфігурації на декількох сайтах?

Що робити, якщо я хочу додати п'ятий сайт? Як би я завантажив нову або як би це працювало?

Відповіді:


11

Налаштування кількох сайтів є дещо складними через їх залежність від однієї бази даних. Ви можете використовувати налаштування для багатьох сайтів у цьому сценарії, але майте на увазі, що під час оновлення модуля sites/all/modulesце вплине на всі сайти (якщо тільки це не буде замінено sites/$SITENAME/modules).

Це призводить до можливих проблем, коли один з ваших сайтів покладається на N версію модуля, але ви хочете використовувати N + 1 на іншому сайті. Модуль, про який йде мова, може не мати шляху оновлення, або він різко змінив свою функціональність між версіями (не настільки рідко, як ви думаєте, враховуючи культуру Drupal щодо основних версій).

Крім того, якщо під час оновлення модуля потрібні критичні зміни бази даних, ви побачите, що вам потрібно знімати кілька сайтів одночасно, щоб забезпечити запуск update.php.

Тож для більшості випадків використання багато сайтів - це не шлях. Якщо ви дійсно не прив’язані до місця або у вас є якесь дивне обмеження хостингу, яке не дозволяє вам відображати домен кожного сайту в окрему папку, вам, швидше за все, краще підтримувати окремі бази коду та використовувати такі інструменти, як Drush та контроль версій для прискорення коду розгортання.

Прототипний варіант використання для багатьох сайтів, поза його використанням як спосіб вирішення обмежувальних хостів, - це коли ви розгортаєте безліч подібних сайтів. Можливо, ви користуєтесь хостинговою службою, або створюєте купу мікро-сайтів для компанії, або що у вас є. У цих випадках ви можете прокрутити власну налаштування на багато сайтів, але вам слід також розглянути можливість використання Aegir , який автоматизує та абстрагує багато клопотів із запуском такої настройки.

Додавання нових сайтів для установки на кілька майданчиків досить просто: створити нову папку в sites, редагувати sites/sites.php(Drupal 7 тільки), скопіювати sites/default/default.settings.phpв settings.phpв цій новій папці, а також відвідати сайт в браузері. Drupal повинен почати процес встановлення та використовувати нову папку. Ваш новий сайт матиме доступ до всіх модулів так sites/all/modulesсамо, як і до існуючих сайтів.


Це досить круто. Це насправді пов'язане з моїм іншим питанням щодо посилань та папки модулів. Мені набридло повторювати один і той же розпорядок кожного разу, коли я запускаю новий тестовий сайт у своєму розробленому середовищі, і мені також дуже нудно копіювати модулі (особливо спеціальні модулі) до декількох проектів (ускладнює оновлення). Тому я думаю, що я міг би використовувати підхід на декількох сайтах, принаймні під час розробки.
theoldold

@sameold, що я використовую для розробки Drupal - це сховище git, яке містить мої обов'язкові модулі як підмодулі. Тоді лише справа бігати, git clone git@my.repository.com:/base.git newsiteщоб отримати чисте середовище.

4
Альтернативою може бути файл "drush make" для базової установки. Ще одна незначна примітка: редагування сайтів / sites.php необов’язкове і необхідне лише тоді, коли пошук за замовчуванням, як це було у D6, не працює (наприклад, багатосайт із декількома доменами для одного сайту).
Бердір

2

Я б використовував веб-сайт Multi, де ви пропонуєте відповідне вміст, але для різних аудиторій.

Наприклад, ми використовуємо це для нашої Інтранети, яка підтримує кілька брендів. Це дозволяє управляти кожною торговою маркою індивідуально з можливістю обміну вмістом / користувачами (велика економія часу на зменшення дублювання).

Також наявність унікального інтерфейсу (меню / блоки / тематичні) проходить довгий шлях до того, щоб різні відділи могли легко отримати доступ до найважливішого для них.

Безліч функцій доступні за допомогою домену доступу до домену, наприклад, дозволяють користувачеві встановити свій сайт за замовчуванням, різні сайти за піддоменом (щоб ви могли мати маркетинг.intranet.local або Engineering.intranet.local тощо), пошук між сайтами, контроль доступу тощо .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.