Не получается подключить ведомый сайт по схеме мультисайтинга. Вот мой settings.php для него:
$db_prefix = array(
'default' => 'slave_bd.',
'ulogin_identity' => 'master_bd.',
'users' => 'master_bd.',
'sequences' => 'master_bd.',
'sessions' => 'master_bd.',
'authmap' => 'master_bd.',
'sequences' => 'master_bd.',
'profile' => 'master_bd.',
'profile_type' => 'master_bd.',
);
$cookie_domain = '.site.by';
Когда заходишь на slave.site.by редиректит на http://slave.site.by/install.php, после чего обнаруживает, что сайт уже существует "Drupal already installed" и предлагает обновить. Если согласиться, то перекидывает на http://slave.site.by/upgrade.php с ошибкой:
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'slave_bd.system' doesn't exist: SELECT name, schema_version FROM {system} WHERE type = :type; Array ( [:type] => module ) in drupal_get_installed_schema_version() (line 155 of /home/site/public_html/includes/install.inc).
Комментарии
У вас в БД таблицы без префиксов? Рекомендую все таки использовать префиксы.
Тогда настройки для ведомого сайта будут такими:
<?php
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'slave_db',
'username' => 'all_db',
'password' => 'pass',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => array(
'default' => 'slaveprefix_',
'users' => 'main_db.mainprefix_',
'users_roles' => 'main_db.mainprefix_',
'role_permission' => 'main_db.mainprefix_',
'flood' => 'main_db.mainprefix_',
'sessions' => 'main_db.mainprefix_',
'role' => 'main_db.mainprefix_',
'authmap' => 'main_db.mainprefix_',
'filter' => 'main_db.mainprefix_',
'filter_format' => 'main_db.mainprefix_',
'locales_source' => 'main_db.mainprefix_',
'locales_target' => 'main_db.mainprefix_',
),
),
),
);
?>
Мультисайтинг ставил давно, но насколько я помню, сначала устанавливается ведомый сайт и только потом правится его settings.php.
Уточняю на всякий случай.
Без префиксов. Они же по разным БД, так что по идее и так сойдет.
Ведомый не устанавливал, сдампил на него таблицы с основного за минусом общих таблиц.
http://habrahabr.ru/post/133086/
рекомендую изучить и сделать все правильно. Ведомый сайт думаю лучше устанавливать.
Изучал...
У меня только в sites/default нету settings.php. Я перенес основной сайт из default в отдельную папку, sites/mysite по принципу дочерних.
Как-то так работало, settings.php лежал непосредственно в директории sites/mysite
Я поудалял файлы конфигурации отовсюду, положил в корень install.php из дистрибутива, и установил drupal с минимальным профилем в базу slave_db. После этого восстановил settings.php как и было - на свои места.
Теперь я могу заходить/выходить с любого сайта в связке! Ура ))
И могу вешать отдельные темы/шаблоны при этом.
Но при существующей схеме ведомый сайт берет таблицы из основного. А изначально планировалось, что я выкину общие таблицы из обоих баз - в третью, common_db. Попробовал переписать settings.php - сразу же пошли старые ошибки... Даже установка в common_db по принципу схемы на две базы - не помогла.
Еще я хоть тресни - не вижу в базе slave_bd никаких таблиц. Вааааще. Хотя по логике там сейчас должен быть полный комплект, ведь я после установки в эту базу ничего не чистил - только settings поменял, чтобы общие из master_db брались... Мистика. Или больно уж хитрый кэш у хостера.