Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Мультисайтинг в Drupal

1
09 июля 2009 года
kot_
7.3K / / 20.01.2000
Кароче хотел задать вопрос - но не получилось :) как часто бывает разобрался самостоятельно. В чем собственно возникла проблема - необходимо было создать два сайта с некими общими параметрами - ну например с общей базой пользователей и т.п.
Первоначально для этих целей планировалось использовать модуль Domain Access (http://drupal.org/project/domain) но все оказалось не так просто.
По теме мультисатинга удалось нарыть две неплохие статьи - http://drupal.org/node/291373#comment-1420746
и
http://drupalcookbook.ru/recept/ustanovka-multisajtinga-s-obshhimi-tablicami
вобщем то там все достаточно подробно описано, едиственно несколько замечаний:
Я делал так: Первый сайт у меня уже был установлен (без префикса таблиц) - установка второго была выполнена с префиксом (ну например "db2_"). После этого были опеределены таблицы которые будут общими и в конфиг была добавлена следующие строки (после строки подключения к базе):
 
Код:
$db_prefix = array(
      'default'   => 'db2_',
    'authmap' => '',
    'profile_fields' => '',
    'profile_values' => '',
    'role' => '',
    'sessions' => '',
    'users' => ''
    );

Соотвественно вы можете расширить нужными вам таблицами.
12
10 июля 2009 года
alekciy
3.0K / / 13.12.2005
Цитата: kot_
Кароче хотел задать вопрос - но не получилось :) как часто бывает разобрался самостоятельно.


Вот это и отличает пенсионеров форума от новичков )) Они прежде ищут, и хорошо ищут )

1
10 июля 2009 года
kot_
7.3K / / 20.01.2000
Я вот кстати единственно чего не разобрался - это как сделать доступными модули для всех сайтов. Допустим есть набор модулей на родительском. Как возпроизвести структуру не дублируя дерево модулей (понятно как сделать общими таблицы - а как быть с файлами)? Мой ответ пока - никак. Для каждого нового сайта надо заново их устанавливать. И честно говоря с Domain Access я так и не разобрался - точнее какой либо реальной пользы от него для меня нет.
92
10 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
Цитата:

понятно как сделать общими таблицы - а как быть с файлами

если на одном сервере, то мож symlink'и сканают (на фолдеры ессна)?

PS: а если не один сервер, то можно примаунтить шары по ssh :))) но это изврат :rolleyes: это я так... рассуждаю ;)

12
10 июля 2009 года
alekciy
3.0K / / 13.12.2005
Делать синхронизацию )) http://forum.codenet.ru/showthread.php?t=55681
92
10 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
а нафига делать копию? O_o
если задача встала использовать то же самое.
12
10 июля 2009 года
alekciy
3.0K / / 13.12.2005
Ааа, блин, обратная задача... гоню.
1
10 июля 2009 года
kot_
7.3K / / 20.01.2000
Цитата: Тень Пса
если на одном сервере, то мож symlink'и сканают (на фолдеры ессна)?


во! про симлинки я и забыл :) попробую. сенкс

92
10 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
всегда рад помочь, когда получается :)
1
10 июля 2009 года
kot_
7.3K / / 20.01.2000
Цитата: Тень Пса
всегда рад помочь, когда получается :)


Как раз данное решение и есть самое удобное. В этом случае дерево модулей остается в актуальном состоянии для всех сайтов входящих в портал. Ну а если необходимо что бы модуль единым для всех (либо некоторых сайтов) - то тогда соотвественно необходимо и таблицы сделать общими как показано выше.

1
10 июля 2009 года
kot_
7.3K / / 20.01.2000
Да и еще одно. Хотя это и очевидно, но на всякий случай - ссылку надо делать только на папку all - а не в коем случае не на всю sites. Так как в папке default хранятся настройки подключения.
И необходимо выделить под пхп изрядное количество памяти - я например установил параметр 128 метров - иначе при большом количестве модулей вы постоянно будет еполучать сообщение о надостаточном выделении памяти.
1
11 июля 2009 года
kot_
7.3K / / 20.01.2000
Вдогонку.
Так как в процессе поиска внятной информации я не нашел - то соотвественно выкладываю сюда, если вдруг кто столкнется с подобной проблемой.
Суть проблемы в следующем - был установлен Domain Access, в последствии решил его убрать. Естественно выключив в модулях, а затем удалив.
Вот тут собственно и началось. Не знаю что было следствием - может ньюансы установки, либо ошибки в самом модуле, либо я гдето допустил ошибку - сказать сложно. При работе на сайте начало появлятся сообщение:
Цитата:

# Права доступа к содержанию следует перестроить....


что в принципе нормально. Так вобщем то и должно быть.
Но при попытке собственно это сделать - во первых появлялся варнинг:

Цитата:

Warning: Table 'xxxxxx.domain_editor' doesn't exist query: SELECT domain_id FROM domain_editor WHERE uid = 1
...


где xxxxxx - название базы с которой работает сайт и сообщение:

Цитата:

# Domain access failed to load during phase: -1. Please check your settings.php file and site configuration.


Надо сказать что таблица в базе естественно была, и при выполнении запроса он возвращал то что должен. Второе сообщение обычно появляется при не правильной установке DA - точнее в случае если не выполнены все шаги - но в данном случае модуль то работал до этого (но на всякий случай проверил и это). Поэтому я грешу на ошибку в самом модуле. Кроме того, если модуль включить - он вполне нормально работает.
после нажатия на ссылку "перестроить права" - система гордо заявляла - типа "функция проверки вернула не правильное значение - поробуйте еще раз либо обратитесь к администратору". Сказать что я был в акуе от всего этого - это не сказать ничего. Вобщем так как ни на буржуинских ни на наших сайтах я толкового решения не нашел - алгоритм убирания данной фигни следующий:
1. Закрыть все вкладки сайта кроме одной. По крайней мере в ФФ это делать обязательно, часть данных начинает тянуться из кеша и эти "зомби" портят всю картину.
2. Выключить все сторонние модули - оставить только те, которые идут в составе ядра (сайт естественно превести в режим обслуживания).
3. Вернуть встроенную тему оформления.
4. Я очистил так же все таблицы сессий и кеша в базе - не знаю надо ли это было делать, но по крайней мере это не повредило.
5. Выполнить престройку прав.
6. Включить нужные модули и темы.
7. Вернуть сайт в состояние продакшин.
Вот такие пирожки...

1
11 июля 2009 года
kot_
7.3K / / 20.01.2000
Версия ядра Drupal 6.13 - т.е. самая последняя из стабильных. Версия Domain Access 6x-2.0-rc8
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог