не работает связка Domain Access + Shared Sign-On

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

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 11 ноября 2008 в 19:20

Что мне нужно:
Мне нужен сайт с несколькими поддоменами (информация будет в одной базе, а также общая база пользователей). Но на разных поддоменах будут разные темы оформления и отображаемая информация. Когда пользователь залогинился на одном из сайтов, то при переходе на другой поддомен авторизация не должна теряться.

Что делал по шагам:
Поставил Drupal 6.6 (с русификацией).
Поставил модуль Domain Access. Включил его. Создал парочку поддоменов.
Поставил модуль Shared Sign-On. Включил интеграцию с модулей Domain.
Удалил все cookie. Захожу на один из сайтов. Авторизуюсь. Перехожу на другой сайт из этой же связки, и меня уже не узнают. Т.е. надо по новой логиниться.
Уже который день бьюсь над проблемой, не пойму почему не работает единая авторизация (кстати база пользователей одна на все сайты).
Может кто подскажет в чем дело или как решить данную проблему.

Комментарии

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 12 ноября 2008 в 7:23

Решил проблему сам. Всё оказало очень просто.
Я вообще отключил модуль Shared Sign-On.
И прочитал файл с документацией по установке Domain Access.
И раскомментировал строку в файле settings.php:
$cookie_domain = ".example.com";
И прописал туда свой основной домен. Следовательно эти куки будут распространятся и на поддомены.

Аватар пользователя VladSavitsky VladSavitsky 20 ноября 2008 в 21:56

Насколько я понимаю, чтобы работала единая авторизация, вполне достаточно строки

$cookie_domain = ".example.com";

Таблицы user* и session у вас в общей базе, поэтому модуль Domain Access в общем-то и не нужен. По крайней мере для этих целей.

Лично меня волнует вопрос единой авторизации на совершенно разных сайтах (не поддоменах).
Если знаете - подскажите как сделать.

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 13 мая 2009 в 6:39

По просьбе интересующихся данным модулем написал подробнее что и как делал по настройке Domain Access.
Я устанавливал Domain Access по инструкции INSTALL.txt
Включил следующие модули:

  • Domain Access
  • Domain Configuration
  • Domain Content
  • Domain Navigation
  • Domain Prefix
  • Domain Theme
  • Domain Views

Согласно инструкции в файл settings.php добавил следующее

/* Чтобы сохранялась единая авторизация на всех поддоменах, правда не всегда (или не сразу) работает в Opera, в других браузерах нормально. */
$cookie_domain = 'my_domain.ru';       
  /**
 * Add the domain_prefix tables
 */

  require_once './sites/all/modules/domain/domain_prefix/settings_domain_prefix.inc';
/**
 * Add the domain_conf settings override
 */

  require_once './sites/all/modules/domain/domain_conf/settings_domain_conf.inc';
 /**
 * Add the custom_url_rewrite_outbound function.
 */

  require_once './sites/all/modules/domain/settings_custom_url.inc';

$base_url оставил закомментированным.
В настройках сервера (Apache) прописал примерно следующее:

<VirtualHost *:80>
    ServerAdmin webmaster@mail.ru
    DocumentRoot /var/www/www.my_domain.ru/www
    ServerName www.my_domain.ru
    ServerAlias site1.my_domain.ru
    ServerAlias site2.my_domain.ru
    ErrorLog logs/www.my_domain.ru/error_log
    CustomLog logs/www.my_domain.ru/access_log combined
</VirtualHost>

Не забываем после этого перегрузить Apache.
В административной части сайта (admin/build/domain/create) создал домены: site1.my_domain.ru и site2.my_domain.ru.
Ну и вроде всё.

Аватар пользователя BassEast BassEast 13 мая 2009 в 10:10

хм.. сделал всё так же, завёл 2 поддомена, вроде бы работает, но! Если создать к примеру страничку и привязать его к новому поддомену (при создании, в моём случае страница привязана в minsk), то эту страницу будет видно и на другом поддомене.

Вот пример:

Minsk.mysite.com
Krasnoyarsk.mysite.com

Вы с этим не сталкивались?

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 13 мая 2009 в 10:45

Да, есть такой эффект, что страница доступна на всех поддоменах.
Я решаю это следующим образом: при создании материала на сайте ставлю галочки на каких доменах публиковать (в блоке Domain access options параметр Publish to: site1, site2). В правах есть соответствующие настройки видимости блока с галочками различным ролям.

Аватар пользователя BassEast BassEast 13 мая 2009 в 11:02

«при создании материала на сайте ставлю галочки на каких доменах публиковать (в блоке Domain access options параметр Publish to: site1, site2)

кстати, вот это вот не работает. Даже если отмечать чекбоксом, к какому домену относить, всё ровно везде отображается и даже кстати если убрать галочку: "Send to all affiliates".

Я правда так и не понял, как вы это решили Smile

В правах есть соответствующие настройки видимости блока с галочками различным ролям.
а это зачем? Как это повлияет на отображаемость контента на том или ином домене?)

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 13 мая 2009 в 11:08

Галочку "Send to all affiliates" надо снять, иначе будет публиковаться на всех поддоменах.
И ещё забыл сказать, надо обновить права доступа на странице admin/content/node-settings

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

Аватар пользователя BassEast BassEast 13 мая 2009 в 11:34

Ну так я и снял галочку "Send to all affiliates", публикуется всё ровно везде Smile

Я вот думаю теперь, тот ли это модуль.. который мне нужен, мне нужно было так, чтобы можно было публиковать материалы и относить их к определённому домену, чтобы у каждого домена главная страница была своя: своё содержание, своё меню. Кстати меню никак здесь нельзя привязывать так же как и блоки, похоже что придётся всё ручками доделывать..

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 13 мая 2009 в 11:47

На самом деле всё это можно сделать.

Первый домен
Второй поддомен
Можно создавать сколько угодно меню. А блоки привязываются к разным темам. А темы можно делать для каждого поддомена свои.

А Вы обновили права доступа?

Аватар пользователя BassEast BassEast 10 ноября 2015 в 11:46

Права доступа - обновил.
Кстати, хотел спросить на странице: admin/build/domain, пишут про patch - вы патчили э'b файлы, которые там требуют пропатчить? См. аттач

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 13 мая 2009 в 12:23

Ещё хотел бы уточнить что я работаю с версией Domain Access 6.x-1.2. Я не помню чтобы патчил. В INSTALL.txt написано, если это выводится сообщение, то PHP не может найти файл включения.

Аватар пользователя BassEast BassEast 13 мая 2009 в 12:34

Практически со всем разобрался, Вам большое спасибо.
Но вот одно меня мучает, что у меня не работают: Domain access options. Publishing options:

Отмечаю при создании, нужный поддомен.. но он так же везде отображается.
Надо ещё ковыряться.

Кстати, в Opera не работает фишка с разными темами у поддоменов: он показывают дефолтовую.

Аватар пользователя pachkow@drupal.org pachkow@drupal.org 13 мая 2009 в 12:46

У меня работает и в Опере разные тема, скорее всего просто закэшировалось.
И ещё посмотрите на странице admin/build/domain/advanced, если там стоит галочка напротив того типа матириала, который Вы пытаетесь опубликовать на разных доменах, то материал будет публиковаться на всех поддоменах. То есть надо снять галочку.
Попробуйте создать новый материал, и сразу поставьте публикацию на определенном домене. И ещё раз обновите права. И посмотрите что получится.

Аватар пользователя BassEast BassEast 13 мая 2009 в 14:58

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

И я уже всё вроде бы сделал, но страницы всё так же на всех поддоменах отображаются Sad

у меня кстати 5-ая версия Drupal, ну и соответственно модуль тоже.
------------------------
на странице: admin/build/domain/edit/1 написано:

http://minsk.conference.irr.ru/ is not responding and may not be configured correctly at the server level. Server code 403 was returned.

Аватар пользователя UAgoth UAgoth 11 ноября 2009 в 18:24

Добрый день,
У меня сейчас стоит такая же задача. С друпалом до этого не работала, по этому хотела уточнить.
Для осуществления этой задачи и создания субдоменов, мне необходимо только поставить и настроить модуль Domain Access?
Или необходимо отдельно ставить модули для создания субдоменов, такие как subdomain или domain? Спасибо.

Аватар пользователя Zmey Zmey 31 января 2010 в 8:53

Все заработало, но остался вопрос: как сделать чтобы пользователь находящийся на определенном субдомене при публикации материала, не проставляя вручную чекбоксы, публиковался на текущем субдомене и на корневом одновременно + как запретить ему публиковаться из корневого домена?
Спасибо.