3.2.2 Базы данных в мультисайтинге

Сайты могут иметь свои базы и быть независимыми друг от друга, а могут иметь разные базы и общие таблицы. К примеру, сайты drupalogy.ru и magazine.drupalogy.ru используют общих пользователей, роли и поля профиля.

У нас должно быть три базы данных, к примеру main_drupal6, sub_drupal6 и shared_drupal6.

Общими таблицами будут: authmap, profile_fields, profile_values, role, sessions и users, размещённые в shared_drupal6. Чтобы использовать общие таблицы, надо прописать в settings.php для каждого сайта. В нашем случае для drupal.loc и sub.drupal.loc

Настройка drupal.loc
Используемая база данных — main_drupal6

$db_url = 'mysqli://stan:password@localhost/main_drupal6';

$db_prefix = array(
    'default' => '',
    'authmap' => 'shared_drupal6.',
    'profile_fields' => 'shared_drupal6.',
    'profile_values' => 'shared_drupal6.',
    'role' => 'shared_drupal6.',
    'sessions' => 'shared_drupal6.',
    'users' => 'shared_drupal6.',
);

Соответственно, в настройках сайта sub.drupal.loc тоже нужно прописать общие таблицы:

Настройка sub.drupal.loc
Используемая база данных — sub_drupal6

$db_url = 'mysqli://stan:password@localhost/sub_drupal6';

$db_prefix = array(
    'default' => '',
    'authmap' => 'shared_drupal6.',
    'profile_fields' => 'shared_drupal6.',
    'profile_values' => 'shared_drupal6.',
    'role' => 'shared_drupal6.',
    'sessions' => 'shared_drupal6.',
    'users' => 'shared_drupal6.',
);

Оставить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Image CAPTCHA
Enter the characters shown in the image.