мультисайтинг - вопросы

29 мая 2008 в 11:32
Аватар пользователя kzuser kzuser 0 37

устанавливал несколько раз мультисайтинг
использовал префиксы как положено по инструкции
но при каждой новой установке новые сайты требуют адиновски аккаунт
так должно быть или что то не так

Комментарии

Необходимо мультисайтинг устанавливать
используя префиксы, а общие таблицы оставить с одинаковыми префиксами

29 мая 2008 в 12:07

Дело в том, что хоть таблицы и одни для всей связки( юзеров, сессии, ..), но Ваш браузер не имеет права отослать куки при переходе на другой домен, так как друпал ставит куки с ограничением на домен.( то есть куки отсылается только при переходе на страницу сайта, расположенного на данном домене).
Необходимо пропатчить сешинз.инк, чтобы выставлялся куки с ограничением на корневой домен.

29 мая 2008 в 15:48

при создании нового сайта на сабдомене каждый раз просит создать админовски аккаунт
так доллжно быть или нет

29 мая 2008 в 18:09

Если у вас таблицы пользователей не единые для всех сайтов, то да - так и должно быть.

Речь о таблицах 'sessions' , 'sequences' и 'users'

29 мая 2008 в 18:52

интересно -
settings.php конфигурирую точно по инструкциям на друпале
только прописываю для каждого нового сайта дефолт разный
все равно просит создать админовски аккаунт для нового сайта
такое ощущение что не видит конфигурацию
какие идеи

29 мая 2008 в 19:09

Подождите, а в какую папку кладете сеттингз.пхп?
Надо прямо в папку с названием Вашего домена, а не в дефолт.

29 мая 2008 в 19:16

вот что я делаю
первое устанавливаю друпал5 (не трогаю сеттингс пхп вообще
второе создаю папку сайт1 в папке сайтс
третье копирую с папки дефолт в папку сайт1 сеттингс.пхп (прописываю префиксы по инструкции)
четвертое создаю поддомен и в контролпанеле указыва. путь сабдомена к основному друпалу
пятое устанавливаю
шестое смотрю как друпал снова просит создать админовски аккаунт
хотя когда я не меняю ничего в сеттингс друпал устанавливаетса как надо но с ошибками

29 мая 2008 в 19:43

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

29 мая 2008 в 19:59

работало как у него ?
http://www.drupal.ru/node/6154
с единым логином на все сайты?
и кстати по ссылке выше какой файл он редактирует для куки
смотрел сессион там нет кода который он говорит поменять
может другой инк файл или какой

29 мая 2008 в 20:05

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

29 мая 2008 в 20:14

парень который бутстрап инк код редактировал еще пишет что

в папке SITES отключаем папку default

как отключаем а базовый сайт на что опирается тогда
и как отключить дефолт удалить что ли

29 мая 2008 в 20:42

Взглянул в бутстрап. Думаю хакать не надо. По-моему достаточно в сеттингз.пхп вставить строчку:
ini_set('session.cookie_domain', $cookie_domain);
где вместо $cookie_domain надо вписать корневой домен.
Это позволит не логиниться отдельно на каждом сайте, а заходить на любой, залогинившись один раз на любом из них.

29 мая 2008 в 20:42

куда именно вставлять в сеттингс пхп
ini_set('session.cookie_domain', $cookie_domain);

потом такой вопрос вот мы меняем сеттингс пхп только в основном сайте
или вносить изменения надо в сеттингс пхп каждого сайта

29 мая 2008 в 20:49

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

29 мая 2008 в 20:51

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

29 мая 2008 в 21:06

Попробуй сначала установить НЕ прописывая общие таблицы для пользователей.

Тогда они создадуться с дефолтовым префиксом (базой), а
Следующим шагом НЕ заводи нового админа, а просто добавь общие таблицы в settings.php.
Должно работать.

Все дело в том, что при выбранном способе инсталяции какие бы префиксы не указывал таблицы с
пользователями будут пустые, а следовательно друпал просит создать админа.

Если приходится новые сайты регулярно добавлять, то как вариант можешь попробовать влезть в /modules/system/system.install и поправить так как тебе нужно. Например, так чтобы таблицы пользователей не создавались.

30 мая 2008 в 1:03

если я устанавливаю ничего не меняя в сеттингс пхп
нетрогая вообще его
все хорошо но соответственно дублируется все - включая контент
как только прописываю префиксы сразу уорнинги
значит неправильно прописываю префиксы

30 мая 2008 в 5:34

$db_url = 'mysql://юзер:парольlocalhost/main';

$db_prefix = array(
'default' => 'main_',
'users' => '',
'sessions' => '',
'role' => '',
'authmap' => '',
'sequences' => '',
);

помогите прописать префиксы

30 мая 2008 в 5:15

$db_prefix = array(
'default' => 'new8_',
'users' => '',
'sessions' => '',
'role' => 'new8_',
'authmap' => 'new8_',
'sequences' => '',
);

попробовал такой вариант префиксов при бд main
выдал такое при установке

Warning: Table 'sessions' already exists query: CREATE TABLE sessions ( uid int unsigned NOT NULL, sid varchar(64) NOT NULL default '', hostname varchar(128) NOT NULL default '', timestamp int NOT NULL default '0', cache int NOT NULL default '0', session longtext, KEY uid (uid), PRIMARY KEY (sid), KEY timestamp (timestamp) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in /var/www/html/includes/database.mysql.inc on line 172

Warning: Table 'sequences' already exists query: CREATE TABLE sequences ( name varchar(255) NOT NULL default '', id int unsigned NOT NULL default '0', PRIMARY KEY (name) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in /var/www/html/includes/database.mysql.inc on line 172

Warning: Table 'users' already exists query: CREATE TABLE users ( uid int unsigned NOT NULL default '0', name varchar(60) NOT NULL default '', pass varchar(32) NOT NULL default '', mail varchar(64) default '', mode tinyint NOT NULL default '0', sort tinyint default '0', threshold tinyint default '0', theme varchar(255) NOT NULL default '', signature varchar(255) NOT NULL default '', created int NOT NULL default '0', access int NOT NULL default '0', login int NOT NULL default '0', status tinyint NOT NULL default '0', timezone varchar(8) default NULL, language varchar(12) NOT NULL default '', picture varchar(255) NOT NULL DEFAULT '', init varchar(64) default '', data longtext, PRIMARY KEY (uid), in /var/www/html/includes/database.mysql.inc on line 172

Warning: Duplicate entry '0' for key 1 query: INSERT INTO users (uid,name,mail) VALUES(0,'','') in /var/www/html/includes/database.mysql.inc on line 172

* user warning: Table 'main.new8_system' doesn't exist query: SELECT name, filename, throttle FROM new8_system WHERE type = 'module' AND status = 1 ORDER BY weight ASC, filename ASC in /var/www/html/includes/database.mysql.inc on line 172.
* user warning: Table 'main.new8_cache_menu' doesn't exist query: SELECT data, created, headers, expire FROM new8_cache_menu WHERE cid = '0:en' in /var/www/html/includes/database.mysql.inc on line 172.
* user warning: Table 'main.new8_cache_menu' doesn't exist query: LOCK TABLES new8_cache_menu WRITE in /var/www/html/includes/database.mysql.inc on line 172.
* user warning: Table 'main.new8_cache_menu' doesn't exist query: UPDATE new8_cache_menu SET data = 'a:4:{s:10:\"path index\";a:0:{}s:5:\"items\";a:2:{i:0;a:5:{s:4:\"path\";s:0:\"\";s:5:\"title\";s:0:\"\";s:4:\"type\";i:1;s:3:\"pid\";i:1;s:8:\"children\";a:1:{i:0;i:1;}}i:1;a:6:{s:3:\"pid\";i:0;s:4:\"path\";s:0:\"\";s:5:\"title\";s:10:\"Navigation\";s:6:\"weight\";i:-50;s:6:\"access\";b:1;s:4:\"type\";i:3;}}s:9:\"callbacks\";a:0:{}s:7:\"visible\";a:2:{i:1;a:5:{s:5:\"title\";s:10:\"Navigation\";s:4:\"path\";s:0:\"\";s:8:\"children\";a:0:{}s:4:\"type\";i:3;s:3:\"pid\";i:0;}i:0;a:4:{s:5:\"title\";s:0:\"\";s:4:\"path\";s:0:\"\";s:8:\"children\";a:1:{i:0;i:1;}s:4:\"type\";i:1;}}}', created = 1212111616, expire = 1212198016, headers = '' WHERE cid = '0:en' in /var/www/html/includes/database.mysql.inc on line 172.
* user warning: Table 'main.new8_watchdog' doesn't exist query: INSERT INTO new8_watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (0, 'page not found', 'node', 1, '', 'http://new8.sharehobby.com/', '', '89.218.69.119', 1212111616) in /var/www/html/includes/database.mysql.inc on line 172.

30 мая 2008 в 5:44

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

30 мая 2008 в 6:11

получилось - установил
понял как все работает

теперь думаю в одну базу пихнуть все или раскидать по разным
второе лучше мне кажется
как вы думаете

30 мая 2008 в 7:10

я все понял и установил так как мне надо.

несколько слов сообществу друпал.ру
огромное спасибо всем вам
на редкость открытое и дружественное сообщество
с умными людьми
что крайне редко в интернете (вообще мало)

30 мая 2008 в 10:11