Урок - Мультисайтинг Drupal 7

Главная » Курсы » Курс Drupal 7, Управление » Урок - Мультисайтинг Drupal 7

Обучающий онлайн курс
Drupal 7, Управление

Лицензия: Копирование запрещено.
Содержание:
  1. Мультисайтинг Drupal7 2 на 1. Общая база, общий движок.
  2. Мультисайтинг Drupal7 2 в 1. Общая авторизация.

Мультисайтинг Drupal7 2 на 1

Имеем два домена: d7.local и news.d7.local

Пример настройки хостов для локальной версии (apache 2.2):

<VirtualHost d7.local>
  ServerName d7.local
  DocumentRoot "d:/_vhost/d7.local/"
  CustomLog "d:/_vhost/d7.local.log" combined
  ErrorLog "d:/_vhost/d7.local.err"
	php_value display_startup_errors 1
	php_value display_errors 1
</VirtualHost>


<VirtualHost news.d7.local>
  ServerName news.d7.local
  DocumentRoot "d:/_vhost/d7.local/"
  CustomLog "d:/_vhost/d7.local.log" combined
  ErrorLog "d:/_vhost/d7.local.err"
	php_value display_startup_errors 1
	php_value display_errors 1
</VirtualHost>

Добавляем записи в файл hosts:

127.0.0.1	d7.local
127.0.0.1	news.d7.local
  • Копируем исходники Drupal 7 в d:/_vhost/d7.local/
  • Создаем папку ./sites/news.d7.local
  • Переходим на страницу http://news.d7.local/ и устанавливаем drupal для http://news.d7.local/ Для базы данных укажите: d7-local Для префикса: news__
  • Создаем папку ./sites/d7.local
  • Переходим на страницу http://d7.local/ и устанавливаем drupal для http://d7.local/ Для базы данных укажите: d7-local Для префикса: master__
  • Перейдите на страницу http://news.d7.local/admin/appearance/settings/bartik и иизмените цвет заголовка. Это действие поможет визуально различать версию сайта с которой мы будем работать.

В итоге имеем:

  • Одну версию исходников.
  • Одну базу.
  • Два работающих сайта.

Мультисайтинг Drupal7 2 в 1

Конечно здорово экономить на версии, обновляя все модули и ядро сразу. Но мы идем дальше и делаем общую авторизацию.

Сначала объединим таблицы пользователей. Это позволит пользователям регистрироваться, авторизовываться на любом из сайтов (d7.local или news.d7.local)

  • Отредактируйте файл ./sites/news.d7.local/settings.php

    найдите:

    'prefix' => 'news__',

    замените на:

    'prefix' => array(
      'default' => 'news__',
      'authmap'   => 'master__',
      'role'      => 'master__',
      'sessions'  => 'master__',
      'users'     => 'master__',
    ),
  • Переименуйте (удалите) таблицы в базе данных: news__authmap, news__role, news__sessions, news__users.
    RENAME TABLE `d7-local`.`news__authmap`	TO `d7-local`.`-news__authmap` ;
    RENAME TABLE `d7-local`.`news__role` TO `d7-local`.`-news__role` ;
    RENAME TABLE `d7-local`.`news__sessions` TO `d7-local`.`-news__sessions` ;
    RENAME TABLE `d7-local`.`news__users` TO `d7-local`.`-news__users` ;
  • Отредактируйте файл ./sites/d7.local/settings.php

    найдите:

    # $cookie_domain = 'example.com';

    замените на:

    # $cookie_domain = 'example.com';
    $cookie_domain = '.d7.local';
  • Отредактируйте файл ./sites/news.d7.local/settings.php

    найдите:

    # $cookie_domain = 'example.com';

    замените на:

    # $cookie_domain = 'example.com';
    $cookie_domain = '.d7.local';

Авторизируйтсь на news.d7.local и вы автоматически будете авторизованы на d7.local.

В итоге имеем:

  • Одну версию Drupal 7.
  • Одну базу.
  • Два работающих сайта.
  • Общая авторизация.

Разделение robots.txt

На данный момент файл robots.txt для каждого из сайтов d7.local и news.d7.local будет один и тот же - ./robots.txt.

Для того, что бы для d7.local отображался свой файл robots.txt, а для news.d7.local свой, можно воспользоваться модулем robots.txt

После установки модуля, на страницах http://d7.local/admin/config/search/robotstxt и http://news.d7.local/admin/config/search/robotstxt доступно редактирование содержимого локальных версий robots.txt.

Последний шаг: удалите (или переименуйте) файл ./robots.txt

Проверяем и убеждаемся, что содержимое различно:

  • Откройте страницу http://d7.local/robots.txt
  • Откройте страницу http://news.d7.local/robots.txt