ПредисловиеВ данной статье я попытаюсь описать порядок инсталяции Jabberd2 как публичного сервиса для некоторого абстрактного хостинга доменов. Стоит отметить, что описания реализации подобной задачи в интеренете нет. Я нашел одну статью, но она была сильно устаревшей и использованные в ней приемы в настоящее время не работоспособны. Статья будет дополняться и перерабатываться, так что жду ваших поправок и отзывов. Задача выполнялась на сервере под управлением CentOS 5. Подход к реализации данной задачи исходил из структуры скрипта инициализации сервиса, так что реализация на другом дистрибутиве может отличаться от данного метода. Постановка задачи
Инсталяция необходимого программного обеспеченияНеобходимио учесть, что данные пакеты в CentOS доступны через репозиторий EPEL.
Конфигурирование Jabberd2Инсталяция схемы базы данныхЗаходим в консоль MySQL с правами администратора. Там:
Это действие создасть базу данных с именем jabberd2. Так же тебудется создать некого пользователя с правами на SELECT, INSERT, UPDATE, DELETE, LOCK TABLES. Последнее не уверн, что необходимо, но более подробной информации не нашел. Наcтройка подключения клиентовКонфигурационный файл /etc/jabber/c2s.xml Для реализации многодоменности обязательно требуется указать значение realm. Он обязан совпадать со значением id. Если realm опустить, то возникнет конфликт учетных записей с одинаковыми именами с разных доменов.
В секции <authreg> указываем тип БД, где будет происходить авторизация. К примеру
В секции <mysql> требуется настроить соответствующие параметры подключения к БД. Стоит отметить проблему с клиентом Gajim и, предположительно, Pidgin: в секции <mechanisms><sasl> следует убрать digest-md5, т.к. она не корректно обрабатывается этими клиентами. Так же возможно поменять местами порядок этих модулей, но эта информация пока не проверена. Настройка хранения информации пользователейКонфигурационный файл /etc/jabber/sm.xml Ростер и vcard храним тоже в MySQL В секции
Указываем наш домен
МногодоменностьОсобенность скриптов инииализации CentOS требует некоторых дополнительных действий, чтобы данный функционал реализовать. Во первых необходимо создать симвлическую ссылку на бинарник sm с именем совпадающим с именем конфигурционного файла
Так же исправляем файл /etc/sysconfig/jabberd. Тут тоже уделяем внимание имени.
Данную операцию можно повторить для множества доменов ЗапускЗапускаем сервис
Проверяем, что Service Manager (sm) имеет двойников как мы и хотели
Ура!!! Мы всех перехитрили, и теперь можем хостить кучу доменов на одном сервере! :) Конфигурирование DNSВ файле зоны необходимо прописать следующие строки:
Это необходимо сделать для каждой зоны, которую вы собираетесь обслуживать. Запись используется для определения хоста для коннекта клиента(c2s) и взаимодействия между серверами(s2s). |