Когда я должен использовать настройку мультисайта?


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же, как и ваши предыдущие сайты.


Это круто. Это на самом деле связано с моим другим вопросом о символических ссылках и папке модулей. Мне надоело повторять одну и ту же процедуру каждый раз, когда я запускаю новый тестовый сайт в своей среде devel, и я также устал от копирования модулей (особенно пользовательских модулей) в несколько проектов (усложняет обновление). Так что, я думаю, я мог бы использовать многосайтовый подход, по крайней мере, во время разработки.
Sameold

@sameold, то, что я использую для разработки Drupal, - это git-репозиторий, который содержит мои обязательные для использования модули в качестве подмодулей. Тогда нужно просто бежать, git clone git@my.repository.com:/base.git newsiteчтобы получить чистую окружающую среду.

4
Альтернативой может быть файл Drush Make для базовой установки. Еще одно небольшое замечание: редактирование sites / sites.php является необязательным и необходимо только в том случае, если поиск по умолчанию, как в D6, не работает (например, для нескольких сайтов с несколькими доменами для одного сайта).
Бердир

2

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

Например, мы используем его для нашей интрасети, которая поддерживает несколько брендов. Это позволяет администрировать каждый бренд индивидуально с возможностью делиться контентом / пользователями (огромная экономия времени при уменьшении дублирования).

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

Множество функций доступно с использованием доменного доступа, например, позволяет пользователю установить свой сайт по умолчанию, разные сайты по субдоменам (таким образом, вы можете иметь marketing.intranet.local или engineering.intranet.local и т. Д.), Поиск между сайтами, контроль доступа и т. Д. ,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.