Как управлять несколькими сайтами в ModX Revolution?
Подготовка хостинга
Перед тем как начать настройку мультисайтинга на MODX Revolution, необходимо подготовить наш хостинг:
- Установите в качестве корневой папки для всех необходимых домейнов папку, в которой установлен MODX Revolution.
- Необходимо настраивать только домены второго уровня (имя.ru), нет нужды конфигурировать домены третьего уровня (имя.имя.ru) на этом этапе. Их мы настроим в самом MODX Revolution в продолжении нашего урока.
- Нам понадобится доступ к файлам сайта, поэтому вам нужно позаботиться о том, чтобы у вас был FTP доступ или альтернативный вариант.
Создание контекстов
Мультисайтинг на MODX Revolution реализуется посредствам "Contexts" (Контексты).
Когда вы впервые вошли в панель управления MODX Revolution, вы наверняка заметили в левом меню иконку маленького домика с названием "web". Это Контекст сайта по-умолчанию.
Мы добавим дополнительные контексты для каждого из наших сайтов. Создание контекстов производиться из меню System > Contexts: .
Как только вы перейдете на страницу контекстов, вы увидете таблицу с двумя уже существующими контектами - ‘web’ и ‘mgr’. ‘mgr’ - это контекст интерфейса управления MODX Revolution. Никакой из этих двух контектов (‘web’ и ‘mgr’) не может быть удалён.
Нажмите на кнопку ‘Create New‘ для создания контекста дополнительного сайта. ‘Content Key‘ это имя вашего контекста, которое будет отображаться в меню Resources в панели администрации.
Название контекста ‘Content Key‘ должно быть простым и без пробелов.
Обновите меню Resources (нажав на зеленые стрелочки в меню) и вы увидите новосозданный контекст.
Создайте главную страницу сайта и страницу ошибки в нашем новом контексте. В продолжении урока мы укажем, какая из страниц является главной и какая страницей ошибки.
На данном этапе у вас должно получиться следующее:
Конфигурирование контекста
Сейчас нам необходимо настроить наш новый контекст. Делается это посредствам добавления специальных системных настроек.
- Перейдитe к списку контекстов (System > Contexts).
- Нажмите правой кнопкой на новый контекст и выберите ‘Update Context‘ в открывшемся меню.
- Перейдите на закладку ‘Context Settings‘ и нажмите на кнопку 'Create New'.
- В открывшемся окошке нам необходимо заполнить только Key, Name и Value.
Повторите последний пункт для создания следующих параметров контекста (key - value):
site_start – ID главной страницы сайта (этот параметр написан ввиде цифры в скобках в конце каждого документа в меню Resources)
base_url – установите этот параметр “/” (без кавычек)
http_host – укажите в этом параметре домен вашего дополнительного сайта “имя.ru” (если речь идет о домейне третьего уровня, то в этом параметре необходимо указать имя.имя.ru)
site_url – укажите в этом параметре полный адрес вашего дополнительного сайта “http://имя.ru/” (можете указать с www)
В результате вы должны получить следующую картину:
Создание страницы ошибки не является обязательным для того, чтобы мультисайтинг заработал. Настройка страницы ошибки производится также как и настройка главной страницы через системные настройки ядра:
Связывание домена с контекстом
Cуществует 2 варианта этой настройки.
Первый вариант - в этом случае все домены ссылаются на одну и туже папку.
Второй вариант - в этом случае у каждого домена своя собственная папка.
В данной статье мы разберем первый вариант.
Откройте в редакторе (к примеру Notepad++) файл index.php, который находится в корневой папке установленного MODX Revolution и прокрутите до конца документа. Вы должны обнаружить следующий код:
/* Initialize the default 'web' context */ $modx->initialize('web'); //Замените вышеуказанные 2 строки на следующий код: /* Настройка маппинга контекстов */ switch ($modx->getOption('http_host')) { case 'modxdomain2.com:80': case 'modxdomain2.com': // Если http_host является дополнительным доменом, то переключить контекст $modx->switchContext('Domain2'); break; default: // откат, возврат к основному контексту $modx->initialize('web'); break; } //Замените modxdomain2.com на имя вашего домена и Domain2 на имя вашего дополнительного контекста. //Если вам необходимо добавить дополнительные сайты, повторите следующие строки перед тегом default: case 'modxdomain3.com:80': case 'modxdomain3.com': // Если http_host является дополнительным доменом, то переключить контекст $modx->switchContext('Domain3'); break;
Разумеется снова же создав modxdomain3.com и Domain3.
Всё