Задача - установить корпоративный jabber server в локальной сети c хранением переписки пользователей в mysql через модуль mod_logdb, а всё остальное во встроенной БД mnesia.
Операционная система - Debian GNU/Linux (Etch, Lenny, Squeeze, Wheezy) или Ubuntu LTS Server
Я устанавливаю в Debian Wheezy но разница с Debian Lenny, Squeeze только в версии патча (указан в инструкции)
Предположим, что сервер мы установили по инструкции:Установка сервера Debian Wheezy c подробными скриншотами
Установлена хостинг панель для удобства добавления домена, бд, сайта по инструкции: Устанавливаем и настраиваем хостинг панель ISPConfig 3 в Debian
Предположим, что репозиторий Вы еще не добавляли, потому добавим выполнив команду для своего дистрибутива:
Для Debian Lenny:
echo 'deb http:
//archive
.debian.org
/debian/
lenny main contrib non-
free
deb-src http:
//archive
.debian.org
/debian/
lenny main
Для Debian Squeeze:
echo 'deb http://mirror.yandex.ru/debian/ squeeze main contrib non-free
deb-src http://mirror.yandex.ru/debian/ squeeze main
' > /etc/apt/sources.list
Для Debian Wheezy:
http://mirror.yandex.ru/debian/ wheezy main contrib non-free
deb-src http://mirror.yandex.ru/debian/ wheezy main
' > /etc/apt/sources.list
!!! Если Вам необходимо поставить на Squeeze версию ejabberd с Lenny, тогда добавляем дополнительно репозиторий Lenny выполнив команду:
echo 'deb http:
//archive
.debian.org
/debian/
lenny main contrib non-
free
deb-src http:
//archive
.debian.org
/debian/
lenny main
Устанавливаем нужные пакеты для компиляции исходных кодов для всех версий Debian:
1 | aptitude install -y build-essential fakeroot subversion erlang |
Cоздаем папку /usr/src/ejabberd и переходим в папку, где будем делать сборку Ejabberd
1 2 | mkdir /usr/src/ejabberd cd /usr/src/ejabberd |
Далее скачиваем исходники с оффициального репозитория:
1 | apt-get source ejabberd |
!!! Если Вам необходимо скачать в Squeeze версию ejabberd c Lenny выполним команду:
1 | apt-get source ejabberd -t lenny |
Проверяем что у нас скачалось:
1 |
Вывод команды для Debian Wheezy (для других будут другие версии ejabberd):
ejabberd-2.1.10 ejabberd_2.1.10-4+deb7u1.diff.gz ejabberd_2.1.10-4+deb7u1.dsc ejabberd_2.1.10.orig.tar.gz
Переходим в распакованную папку для сборки пакета для Wheezy:
1 | cd ejabberd-2.1.10/ |
Переходим в распакованную папку для сборки пакета для Squeeze:
1 | cd ejabberd-2.1.5/ |
Переходим в распакованную папку для сборки пакета для Lenny:
1 | cd ejabberd-2.0.1 /src |
Качаем патчи
Патч и драйвер для mysql находятся на сайте
Для Debian Lenny, в репозитории ejabberd 2.0.1, необходимо пропатчить 2 патча mod_Logdb и патч добавляющий вместо логина выводит содержимое ника, если оно заполнено, например логин ivanov, а ник Иванов Иван Иванович - выведет ник для отображения на экране:
Скачиваем патч mod_logdb для Debian Lenny с официального сайта и накладываем патч:
1 2 | wget http: //softnastroy .com /downloads/ejabberd/patch-src-mod_logdb-2 .0.5. diff patch -p0 < patch-mod_logdb-2.0.5. diff |
Скачиваем патч меняющий логин на ник с моего сайта, только для ejabberd 2.0.1 и 2.0.5 (Lenny) так как не нашел сайт автора:
1 2 3 | cd .. wget http: //softnastroy .com /downloads/ejabberd/mod_shared-name . diff patch -p0 < mod_shared-name. diff |
!!! Если Вам необходимо установить версию Ejabberd 2.0.5, выполните команды которые скачают и распакуют исходники, далее накладываете патчи как выше указано:
1 2 3 4 5 | wget http: //softnastroy .com /downloads/ejabberd/ejabberd_2 .0.5-1.1.dsc wget http: //softnastroy .com /downloads/ejabberd/ejabberd_2 .0.5.orig. tar .gz wget http: //softnastroy .com /downloads/ejabberd/ejabberd_2 .0.5-1.1. diff .gz dpkg- source -x ejabberd_2.0.5*.dsc cd ejabberd-2.0.5 /src/ |
Скачиваем патч mod_logdb для Debian Squeeze (ejabberd 2.1.5) с официального сайта:
1 | wget http: //www .dp.uz.gov.ua /o .palij /mod_logdb/patch-mod_logdb-2 .1.3. diff |
Скачиваем патч mod_logdb для Debian Squeeze (ejabberd 2.1.5) с моего сайта:
1 | wget http: //softnastroy .com /downloads/ejabberd/patch-mod_logdb-2 .1.3. diff |
Скачиваем патч mod_logdb для Debian Wheezy (ejabberd 2.1.10) с официального сайта:
1 | wget http: //www .dp.uz.gov.ua /o .palij /mod_logdb/patch-mod_logdb-2 .1.10. diff |
Скачиваем патч mod_logdb для Debian Wheezy (ejabberd 2.1.10) с моего сайта:
1 | wget http: //softnastroy .com /downloads/ejabberd/patch-mod_logdb-2 .1.10. diff |
Накладываем патч mod_logdb коммандой:
1 | patch -p0 < patch-mod_logdb* |
Должно выдать примерно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | patching file mod_logdb.erl patching file mod_logdb.hrl patching file mod_logdb_mnesia.erl patching file mod_logdb_mysql.erl patching file mod_logdb_mysql5.erl patching file mod_logdb_pgsql.erl patching file mod_logdb_mnesia_old.erl patching file gen_logdb.erl patching file mod_muc /mod_muc_room .erl Hunk #1 succeeded at 605 (offset -27 lines). patching file msgs /uk .msg Hunk #1 succeeded at 375 (offset 6 lines). patching file msgs /ru .msg Hunk #1 succeeded at 375 (offset 6 lines). patching file msgs /pl .msg Hunk #1 succeeded at 375 (offset 5 lines). patching file msgs /nl .msg Hunk #1 succeeded at 375 (offset 6 lines). patching file mod_roster.erl patching file mod_roster_odbc.erl |
Устанавливаем необходимые пакеты для сборки коммандой (если необходимо поставить пакеты с другого дистрибутива, добавить в команду ключ -t lenny):
1 | apt-get build-dep ejabberd |
Переходим в папку /usr/src/ejabberd/ejabberd-2.1.10/
1 | cd /usr/src/ejabberd/ejabberd-2 .1.10/ |
Запускаем сборку нашего пропатченного ejabberd коммандой:
1 | fakeroot dpkg-buildpackage -us -uc |
тут идет компиляция и сборка и заканчивается примерно таким выводом:
1 2 3 4 5 6 | ... dpkg-deb: сборка пакета «ejabberd» в файл «.. /ejabberd_2 .1.5-3+squeeze1_i386.deb». dpkg-genchanges >.. /ejabberd_2 .1.5-3+squeeze1_i386.changes dpkg-genchanges: в закачку не включён оригинальный исходный код dpkg- source --after-build ejabberd-2.1.5 dpkg-buildpackage: закачка только двоичных пакетов и diff (без пакетов оригинального исходного кода) |
Переходим в папку вверх командой:
1 | cd .. |
и проверяем что у нас собралось командой ls:
1 2 3 | ls ejabberd-2.1.5 ejabberd_2.1.5-3+squeeze1.dsc ejabberd_2.1.5-3+squeeze1_i386.deb ejabberd_2.1.5-3+squeeze1. diff .gz ejabberd_2.1.5-3+squeeze1_i386.changes ejabberd_2.1.5.orig. tar .gz |
Видим наш собранный deb файл ejabberd_2.1.5-3+squeeze1_i386.deb, его мы и будем устанавливать.
Перед установкой необходимо определится с доменным именем на котором будет работать наш ejabberd server, в файл /etc/hosts добавляем строку:
1 | 192.168.0.1 jabber. local .ua jabber |
где 192.168.0.1 - ip адресс нашего сервера в локальной сети
local.ua - для примера доменное имя у нас в сети
jabber.local.ua - доменное имя нашего jabber сервера, по которому будет подключатся пользователи к серверу.
изменяем имя сервера в файле /etc/hostname на jabber.local.ua
запускаем применение имени командой:
1 | /etc/init .d /hostname .sh |
Проверяем какое имя выводится командами:
1 2 | hostname hostname -f |
Должно выдать на каждую команду:
1 | jabber. local .ua |
Желательно также установить и настроить DNS сервер в локальной сети, чтобы пользователям не прописывать в клиенте IP сервера, а обойтись доменным именем сети.
Переходим к установке сервера.
Установка пропатченного и собранного ejabberd сервера выполняется командой:
1 | dpkg -i /usr/src/ejabberd/ejabberd_2 .1.5-3+squeeze1_i386.deb |
Проверяем чтобы был модуль mod_logdb командой:
1 | ls /usr/lib/ejabberd/ebin/ *logdb* |
Вывод команды:
1 2 3 4 | /usr/lib/ejabberd/ebin/gen_logdb .beam /usr/lib/ejabberd/ebin/mod_logdb_mysql5 .beam /usr/lib/ejabberd/ebin/mod_logdb .beam /usr/lib/ejabberd/ebin/mod_logdb_mysql .beam /usr/lib/ejabberd/ebin/mod_logdb_mnesia .beam /usr/lib/ejabberd/ebin/mod_logdb_pgsql .beam /usr/lib/ejabberd/ebin/mod_logdb_mnesia_old .beam |
Устанавливаем драйвера для работы mod_logdb c mysql
Скачиваем драйвера с оффициального сайта:
1 | wget http: //www .dp.uz.gov.ua /o .palij /mod_logdb/erlang-mysql-850-with-userflags . tar .bz2 |
Скачиваем драйвера с моего сайта:
1 | wget http: //softnastroy .com /downloads/ejabberd/erlang-mysql-850-with-userflags . tar .bz2 |
Распаковываем архив коммандой:
1 | tar xvjf erlang-mysql-850-with-userflags. tar .bz2 |
переходим в папку erlang-mysql
1 | cd erlang-mysql |
И собираем драйвера коммандой:
1 | sh build.sh |
После сборки копируем драйвера в папку /usr/lib/ejabberd/ebin/ командой:
1 | cp ebin/* /usr/lib/ejabberd/ebin/ |
Установка нашего ejabberd сервера закончена, далее переходим непостредственно к настройке свежеустановленного ejabberd сервера.
С Вами был Сергей Лазаренко.
Продолжение инструкции: Настройка ejabberd и модуля mod_logdb в Debian
Просмотрим видео о WIFI для чайников:
Add new comment