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

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

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

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

Комментарии

Аватар пользователя homenets homenets 29 мая 2008 в 12:07

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

Аватар пользователя gorr gorr 29 мая 2008 в 15:48

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

Аватар пользователя kzuser kzuser 29 мая 2008 в 18:09

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

Аватар пользователя WiseMan WiseMan 29 мая 2008 в 18:52

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

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

Аватар пользователя kzuser kzuser 29 мая 2008 в 19:09

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

Аватар пользователя gorr gorr 29 мая 2008 в 19:16

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

Аватар пользователя kzuser kzuser 29 мая 2008 в 19:43

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

Аватар пользователя gorr gorr 29 мая 2008 в 19:59

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

Аватар пользователя kzuser kzuser 29 мая 2008 в 20:05

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

Аватар пользователя gorr gorr 29 мая 2008 в 20:14

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

Аватар пользователя kzuser kzuser 29 мая 2008 в 20:42

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

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

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

Аватар пользователя gorr gorr 29 мая 2008 в 20:42

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

Аватар пользователя kzuser kzuser 29 мая 2008 в 20:49

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

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

Аватар пользователя gorr gorr 29 мая 2008 в 20:51

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

Аватар пользователя gorr gorr 29 мая 2008 в 21:06

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

Аватар пользователя WiseMan WiseMan 30 мая 2008 в 1:03

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

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

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

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

Аватар пользователя kzuser kzuser 30 мая 2008 в 5:34

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

Аватар пользователя kzuser kzuser 30 мая 2008 в 5:15

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

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

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

Аватар пользователя kzuser kzuser 30 мая 2008 в 5:44

$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.

Аватар пользователя kzuser kzuser 30 мая 2008 в 6:11

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

Аватар пользователя kzuser kzuser 30 мая 2008 в 7:10

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

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

Аватар пользователя kzuser kzuser 30 мая 2008 в 10:11

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

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