устанавливал несколько раз мультисайтинг
использовал префиксы как положено по инструкции
но при каждой новой установке новые сайты требуют адиновски аккаунт
так должно быть или что то не так
Дело в том, что хоть таблицы и одни для всей связки( юзеров, сессии, ..), но Ваш браузер не имеет права отослать куки при переходе на другой домен, так как друпал ставит куки с ограничением на домен.( то есть куки отсылается только при переходе на страницу сайта, расположенного на данном домене).
Необходимо пропатчить сешинз.инк, чтобы выставлялся куки с ограничением на корневой домен.
интересно -
settings.php конфигурирую точно по инструкциям на друпале
только прописываю для каждого нового сайта дефолт разный
все равно просит создать админовски аккаунт для нового сайта
такое ощущение что не видит конфигурацию
какие идеи
вот что я делаю
первое устанавливаю друпал5 (не трогаю сеттингс пхп вообще
второе создаю папку сайт1 в папке сайтс
третье копирую с папки дефолт в папку сайт1 сеттингс.пхп (прописываю префиксы по инструкции)
четвертое создаю поддомен и в контролпанеле указыва. путь сабдомена к основному друпалу
пятое устанавливаю
шестое смотрю как друпал снова просит создать админовски аккаунт
хотя когда я не меняю ничего в сеттингс друпал устанавливаетса как надо но с ошибками
Честно сказать я никогда не инсталлировал таким образом, я делал новый сайт на локальном компе, потом заливал базу на хостинг и все работало, это надо смотреть в инсталл.пхп, что он там делает...
работало как у него ? http://www.drupal.ru/node/6154
с единым логином на все сайты?
и кстати по ссылке выше какой файл он редактирует для куки
смотрел сессион там нет кода который он говорит поменять
может другой инк файл или какой
Может быть стоит просто сделать дамп неразделяемых таблиц и заливать его в новую базу вручную каждый раз, в таком случае инсталлировать ничего не надо уже.
Просто может быть инсталляционный скрипт затирает предварительно созданные разделяемые таблицы пользователей, сессий,...- не разбирался.
а как у тебя происходит установка
если не трудно
опиши
хочу попробовать как у тебя и как у него http://www.drupal.ru/node/6154 точь в точь может получится
Взглянул в бутстрап. Думаю хакать не надо. По-моему достаточно в сеттингз.пхп вставить строчку:
ini_set('session.cookie_domain', $cookie_domain);
где вместо $cookie_domain надо вписать корневой домен.
Это позволит не логиниться отдельно на каждом сайте, а заходить на любой, залогинившись один раз на любом из них.
Если сам делаешь, а не кто-то, то делай без инсталлятора- создал новую базу, залил таблицы, которые не являются общими и вставил папку с файлом сеттингз.пхп со всеми изменениями и права потом выставил на этот файл - только чтение. Все.
Попробуй сначала установить НЕ прописывая общие таблицы для пользователей.
Тогда они создадуться с дефолтовым префиксом (базой), а
Следующим шагом НЕ заводи нового админа, а просто добавь общие таблицы в settings.php.
Должно работать.
Все дело в том, что при выбранном способе инсталяции какие бы префиксы не указывал таблицы с
пользователями будут пустые, а следовательно друпал просит создать админа.
Если приходится новые сайты регулярно добавлять, то как вариант можешь попробовать влезть в /modules/system/system.install и поправить так как тебе нужно. Например, так чтобы таблицы пользователей не создавались.
если я устанавливаю ничего не меняя в сеттингс пхп
нетрогая вообще его
все хорошо но соответственно дублируется все - включая контент
как только прописываю префиксы сразу уорнинги
значит неправильно прописываю префиксы
попробовал такой вариант префиксов при бд 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.
несколько слов сообществу друпал.ру
огромное спасибо всем вам
на редкость открытое и дружественное сообщество
с умными людьми
что крайне редко в интернете (вообще мало)
Комментарии
Необходимо мультисайтинг устанавливать
используя префиксы, а общие таблицы оставить с одинаковыми префиксами
я здесь подробно описал
можешь посмотреть
http://drupal.org/node/263913#comment-861833
Дело в том, что хоть таблицы и одни для всей связки( юзеров, сессии, ..), но Ваш браузер не имеет права отослать куки при переходе на другой домен, так как друпал ставит куки с ограничением на домен.( то есть куки отсылается только при переходе на страницу сайта, расположенного на данном домене).
Необходимо пропатчить сешинз.инк, чтобы выставлялся куки с ограничением на корневой домен.
http://www.drupal.ru/node/6154
Здесь патч.
при создании нового сайта на сабдомене каждый раз просит создать админовски аккаунт
так доллжно быть или нет
Если у вас таблицы пользователей не единые для всех сайтов, то да - так и должно быть.
Речь о таблицах 'sessions' , 'sequences' и 'users'
интересно -
settings.php конфигурирую точно по инструкциям на друпале
только прописываю для каждого нового сайта дефолт разный
все равно просит создать админовски аккаунт для нового сайта
такое ощущение что не видит конфигурацию
какие идеи
не получается пропатчить
прикрепил бутрапер инк файл
помогите пропатчить как сделал он http://www.drupal.ru/node/6154
Подождите, а в какую папку кладете сеттингз.пхп?
Надо прямо в папку с названием Вашего домена, а не в дефолт.
вот что я делаю
первое устанавливаю друпал5 (не трогаю сеттингс пхп вообще
второе создаю папку сайт1 в папке сайтс
третье копирую с папки дефолт в папку сайт1 сеттингс.пхп (прописываю префиксы по инструкции)
четвертое создаю поддомен и в контролпанеле указыва. путь сабдомена к основному друпалу
пятое устанавливаю
шестое смотрю как друпал снова просит создать админовски аккаунт
хотя когда я не меняю ничего в сеттингс друпал устанавливаетса как надо но с ошибками
создаю в sites точно по инструкции
Честно сказать я никогда не инсталлировал таким образом, я делал новый сайт на локальном компе, потом заливал базу на хостинг и все работало, это надо смотреть в инсталл.пхп, что он там делает...
работало как у него ?
http://www.drupal.ru/node/6154
с единым логином на все сайты?
и кстати по ссылке выше какой файл он редактирует для куки
смотрел сессион там нет кода который он говорит поменять
может другой инк файл или какой
Может быть стоит просто сделать дамп неразделяемых таблиц и заливать его в новую базу вручную каждый раз, в таком случае инсталлировать ничего не надо уже.
Просто может быть инсталляционный скрипт затирает предварительно созданные разделяемые таблицы пользователей, сессий,...- не разбирался.
а как у тебя происходит установка
если не трудно
опиши
хочу попробовать как у тебя и как у него http://www.drupal.ru/node/6154 точь в точь может получится
bootstrap.inc
Прошу прощения за неточность.
парень который бутстрап инк код редактировал еще пишет что
в папке SITES отключаем папку default
как отключаем а базовый сайт на что опирается тогда
и как отключить дефолт удалить что ли
Взглянул в бутстрап. Думаю хакать не надо. По-моему достаточно в сеттингз.пхп вставить строчку:
ini_set('session.cookie_domain', $cookie_domain);
где вместо $cookie_domain надо вписать корневой домен.
Это позволит не логиниться отдельно на каждом сайте, а заходить на любой, залогинившись один раз на любом из них.
куда именно вставлять в сеттингс пхп
ini_set('session.cookie_domain', $cookie_domain);
потом такой вопрос вот мы меняем сеттингс пхп только в основном сайте
или вносить изменения надо в сеттингс пхп каждого сайта
Да, дефолт думаю не надо отключать.
с логином ясно
теперь решить бы проблему с запрашиванием нового сайта админовского аккаунта
Если сам делаешь, а не кто-то, то делай без инсталлятора- создал новую базу, залил таблицы, которые не являются общими и вставил папку с файлом сеттингз.пхп со всеми изменениями и права потом выставил на этот файл - только чтение. Все.
У каждого сайта свой сеттингз
Строчку вставляешь где хочешь
значит модули не работают для единого логина если все хакают куки
Все работает, если сделаешь так как я сказал.
Те хаки эквивалентны по действию строчке, которую я написал.
устанавливаю по схеме http://www.drupal.ru/node/6154
сейчас сообщу результат
странно не идет и все. просто не идет как надо. помогите.
по всякому пробую - ничего не получается.
Попробуй сначала установить НЕ прописывая общие таблицы для пользователей.
Тогда они создадуться с дефолтовым префиксом (базой), а
Следующим шагом НЕ заводи нового админа, а просто добавь общие таблицы в settings.php.
Должно работать.
Все дело в том, что при выбранном способе инсталяции какие бы префиксы не указывал таблицы с
пользователями будут пустые, а следовательно друпал просит создать админа.
Если приходится новые сайты регулярно добавлять, то как вариант можешь попробовать влезть в /modules/system/system.install и поправить так как тебе нужно. Например, так чтобы таблицы пользователей не создавались.
если я устанавливаю ничего не меняя в сеттингс пхп
нетрогая вообще его
все хорошо но соответственно дублируется все - включая контент
как только прописываю префиксы сразу уорнинги
значит неправильно прописываю префиксы
$db_url = 'mysql://юзер:парольlocalhost/main';
$db_prefix = array(
'default' => 'main_',
'users' => '',
'sessions' => '',
'role' => '',
'authmap' => '',
'sequences' => '',
);
помогите прописать префиксы
$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.
запутался из за префиксов. нужен мультисайтинг с общим бд в который каждый сайт отличаестя префиксом.
получилось - установил
понял как все работает
теперь думаю в одну базу пихнуть все или раскидать по разным
второе лучше мне кажется
как вы думаете
теперь единый логин нужен
изучаю
помогите сделать единый логин
чтоб один зарегитсрировшись одновременно на все сайты и также выход
я все понял и установил так как мне надо.
несколько слов сообществу друпал.ру
огромное спасибо всем вам
на редкость открытое и дружественное сообщество
с умными людьми
что крайне редко в интернете (вообще мало)