Удобное администрирование мультисайтинга. Как сделать?

Главные вкладки

Аватар пользователя Koreychenko Koreychenko 8 августа 2012 в 16:13

Приветствую, прошу помощи.

Есть мультисайтинг на 80 сайтов.
Сайты с независимыми базами данных (так было нужно).

Сейчас многие технические моменты решаются с помощью drush, однако он не всемогущ.

Есть задача - создать на всех сайтах новый тип материала и вьюху, которая бы этот тип выводила.

Также есть вопросы по настройке модулей одновременно на всех сайтах.

Как можно скопировать на одном сайте настройки и разможить их на все 80 сайтов?

Пока ничего другого, как прямой SQL запрос к базе в голову не приходит, но это не кошерно, да и таблиц там много, можно что-то пропустить.

В общем, предлагаю делиться своим опытом по администрированию мультисайтинга в этой ветке.

Комментарии

Аватар пользователя Koreychenko Koreychenko 8 августа 2012 в 16:58

Chesla wrote:
Я то же немного прикуел. А для чего сайты если не секрет?)))

Сайтов - по количеству регионов в РФ.
На каждом сайте свой контент и свои модераторы и админы, но общая тема, общие блоки и одинаковые модулю.

Короче, общее все, кроме контента и таксономии.

Пока видится вот так:

Для удобства администрирования объединить некоторые таблицы баз данных.

1. Таблица типов материалов. node_type
2. Таблица с перечнем полей материалов.
3. Таблица с перечнем вьюсов и их дисплеев. views_view, views_display
4. Таблица system - ведь все настройки модулей будут одинаковыми.
5. Таблица block - расположение элементов тоже везде будет одинаковым.
6. Общие таблицы с правами пользователей main_role, main_role_permission

Взлетит-ли оно после этого? Большой вопрос. К тому же нужно будет жестко ограничить доступ к удалению каких-либо элементов структуры, ведь оно удалится на всех сайтах разом если что.

Аватар пользователя andriy.olischuk andriy.olischuk 8 августа 2012 в 17:22

Модуль Features? Делается на одном сайте, далее разворачивается на остальных. Версионируется, поддерживает развитие фич, помоему автоматизируется деплой с помощью drush.

Аватар пользователя Koreychenko Koreychenko 9 августа 2012 в 13:40

andriy.olischuk wrote:
Модуль Features? Делается на одном сайте, далее разворачивается на остальных. Версионируется, поддерживает развитие фич, помоему автоматизируется деплой с помощью drush.

Фичи, это гениальный и очень удобный модуль для разработки и разворачивания сайтов, спасибо, раньше его не пробовал.

Но я пошел другим путем.

Объединил следующие таблицы и теперь у меня сайты идентичные, кроме контента.
Это кусок из settings.php для второго сайта в мультисайтинге. Префикс этих таблиц оставлен пустым.

'default' => 'site2_',
'users' => '',
'system' => '',
'registry' => '',
'registry_file' => '',
'views_display' => '',
'views_view' => '',
'ctools_css_cache' => '',
'ctools_object_cache' => '',
'cache_views' => '',
'cache_views_data' => '',
'field_config' => '',
'field_config_instance' => '',
'image_effects' => '',
'image_styles' => '',
'node_type' => '',
'role' => '',
'role_permission' => '',
'users_roles' => '',
'block' => '',

Что мы получили таким образом:

1. Одновременное создание вьюх, типов материала и пользователей на всех сайтах.
2. Одновременное включение/выключение модулей на всех сайтах.
3. Одновременное изменение положения вывода блоков на всех сайтах.
4. Администрирование ролями пользователей на всех сайтах.
5. Общую базу пользователей (ну, это мне нужно было).