Мультисайтинг, общие таблицы - Как правильно прописать префиксы?

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

Аватар пользователя Modjahed Modjahed 16 ноября 2009 в 10:21

Пишу сюда как в последнюю инстанцию. Четвертые сутки не могу побороть проблему. Я перечитал кучу статей по теме мультисайтинга, даже с английского переводил, но так и не добился результата

Вот некоторые из них:
http://www.razgonka.ru/multisiting
http://drupalcookbook.ru/recept/ustanovka-multisajtinga-s-obshhimi-tabli...
http://www.slideshare.net/Drupalcampkyiv/ss-1921139

У меня стоит Drupal 6.14 Получается создать на одном движке разные сайты с поддоменнами, но я ни как не могу сделать так, чтобы на двух сайтах была общая база пользователей. Оба сайта у меня получаются самостоятельными.

Задача состоит в том, чтобы сделать два мультисайта. В первом мультисайте - общая база данных пользователей, все остальное у каждого свое. Во втором мультисайте - одна большая база данных разделенная префиксами.

Прошу показать мне на живом примере как должны прописываться префиксы в settings.php в обоих случаях. Не нужно ни каких сокращений по типу сайт1_БД и т.д. Из - за этих сокращений я очень сильно запутался, для этого привожу свои параметры.

Есть два сайта:

site1.ru
site2.ru

baza - для сайта с единственной базой данных

baza1 - база данных сайта 1
baza2 - база данных сайта 2
baza3 - база данных общая

_______________________________________________________________________
* $db_prefix = array(
* 'default' => 'main_',
* 'users' => 'shared_',
* 'sessions' => 'shared_',
* 'role' => 'shared_',
* 'authmap' => 'shared_',
* );
*
* Database URL format:
* $db_url = 'mysql://username:password@localhost/databasename';
* $db_url = 'mysqli://username:password@localhost/databasename';
* $db_url = 'pgsql://username:password@localhost/databasename';
*/
$db_url = 'mysqli://modjahed:12345@localhost/baza';
$db_prefix = '';
_________________________________________________________________________

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

Комментарии

Аватар пользователя Modjahed Modjahed 16 ноября 2009 в 18:39

ws_admin wrote:
Нашел у себя в загашничке пару ссылок относительно префиксов. Может пригодится:
Мультисайтинг на Друпале - это круто!
Мультисайтинг. Выбор таблиц

Спасибо. Первую статью раз 10 перечитал. Вторая статья интересная, но пока я не разберусь как прописать префиксы в settings.php толку от нее для меня не очень много. Но если разберусь, то она будет очень полезной!

Аватар пользователя dys@drupal.org dys@drupal.org 16 ноября 2009 в 14:57

Главное что б были одинаковые пароли и логин тогда:
$db_url = 'mysqli://modjahed:12345@localhost/baza';
$db_prefix = '';
$db_prefix = array(
'default' => 'main_',
'users' => 'baza3.shared_',
'sessions' => 'baza3.shared_',
'role' => 'baza3.shared_',
'authmap' => 'baza3.shared_',
);
<

Аватар пользователя Modjahed Modjahed 16 ноября 2009 в 18:32

<a href="mailto:dys@drupal.org">dys@drupal.org</a> wrote:
Главное что б были одинаковые пароли и логин тогда:
$db_url = 'mysqli://modjahed:12345@localhost/baza';
$db_prefix = '';
$db_prefix = array(
'default' => 'main_',
'users' => 'baza3.shared_',
'sessions' => 'baza3.shared_',
'role' => 'baza3.shared_',
'authmap' => 'baza3.shared_',
);
<

Получается, что обе строчки идентичны для двух сайтов? Строчка 'default' => 'main_', также везде одинаковая или для каждого сайта нужна своя? Если своя, то прошу показать на примере как она должна выглядеть?

Обязательно ли нужно к названию базы приписывать слово ".shared"? И еще не совсем понятно со знаками "_" и "." Если мы хотим, чтобы была база "одна общая - остальные собственные" то мы должны писать в формате 'baza3.shared_', а если хотим чтобы база разделялась префиксами то мы должны писать 'baza3_shared_',???

Аватар пользователя dys@drupal.org dys@drupal.org 17 ноября 2009 в 16:52

Есть два сайта:
site1.ru
site2.ru
baza - для сайта с единственной базой данных//это для какого сайта??
baza1 - база данных сайта 1
baza2 - база данных сайта 2
baza3 - база данных общая// это как я понимаю база где будут храниться юзеры?

Аватар пользователя Modjahed Modjahed 17 ноября 2009 в 17:12

<a href="mailto:dys@drupal.org">dys@drupal.org</a> wrote:
Есть два сайта:
site1.ru
site2.ru
baza - для сайта с единственной базой данных//это для какого сайта??
baza1 - база данных сайта 1
baza2 - база данных сайта 2
baza3 - база данных общая// это как я понимаю база где будут храниться юзеры?

baza1 - это база для мультисайта которая разделена префиксами

baza3 - это база для юзеров.

Вы абсолютно, все верно поняли!

Аватар пользователя dys@drupal.org dys@drupal.org 18 ноября 2009 в 12:35

site1.ru

$db_url = 'mysqli://modjahed: 12345localhost/baza1';
$db_prefix = array(
'default' => 'main_',//такой формат если вглавной есть префикс если нет тогда ''
'users' => 'baza3.',//пишем так если в общей базе нет префиксов,если есть пишем так 'baza3.shared_'
'sessions' => 'baza3.',
'role' => 'baza3.',
'authmap' => 'baza3.',

site2.ru

$db_url = 'mysqli://modjahed: 12345localhost/baza2';
$db_prefix = array(
'default' => 'main_',//такой формат если вглавной есть префикс если нет тогда ''
'users' => 'baza3.',//пишем так если в общей базе нет префиксов,если есть пишем так 'baza3.shared_'
'sessions' => 'baza3.',
'role' => 'baza3.',
'authmap' => 'baza3.',
Аватар пользователя Modjahed Modjahed 18 ноября 2009 в 12:49

<a href="mailto:dys@drupal.org">dys@drupal.org</a> wrote:
site1.ru

$db_url = 'mysqli://modjahed: 12345localhost/baza1';
$db_prefix = array(
'default' => 'main_',//такой формат если вглавной есть префикс если нет тогда ''
'users' => 'baza3.',//пишем так если в общей базе нет префиксов,если есть пишем так 'baza3.shared_'
'sessions' => 'baza3.',
'role' => 'baza3.',
'authmap' => 'baza3.',

site2.ru

$db_url = 'mysqli://modjahed: 12345localhost/baza2';
$db_prefix = array(
'default' => 'main_',//такой формат если вглавной есть префикс если нет тогда ''
'users' => 'baza3.',//пишем так если в общей базе нет префиксов,если есть пишем так 'baza3.shared_'
'sessions' => 'baza3.',
'role' => 'baza3.',
'authmap' => 'baza3.',

Благодарю за ответ. Я все делал по аналогичной схеме. У вас какая версия Drupal?

Аватар пользователя Modjahed Modjahed 18 ноября 2009 в 12:49

Valeratal wrote:
а что, пароли и пользователи всех этих баз должны совпадать?

Если ссылаться на всю документацию и статьи по этой теме, то ДА