Задача - установить корпоративный 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:
aptitude install -y build-essential fakeroot subversion erlang
Cоздаем папку /usr/src/ejabberd и переходим в папку, где будем делать сборку Ejabberd
mkdir /usr/src/ejabberd cd /usr/src/ejabberd
Далее скачиваем исходники с оффициального репозитория:
apt-get source ejabberd
!!! Если Вам необходимо скачать в Squeeze версию ejabberd c Lenny выполним команду:
apt-get source ejabberd -t lenny
Проверяем что у нас скачалось:
ls
Вывод команды для 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:
cd ejabberd-2.1.10/
Переходим в распакованную папку для сборки пакета для Squeeze:
cd ejabberd-2.1.5/
Переходим в распакованную папку для сборки пакета для Lenny:
cd ejabberd-2.0.1/src
Качаем патчи
Патч и драйвер для mysql находятся на сайте
Для Debian Lenny, в репозитории ejabberd 2.0.1, необходимо пропатчить 2 патча mod_Logdb и патч добавляющий вместо логина выводит содержимое ника, если оно заполнено, например логин ivanov, а ник Иванов Иван Иванович - выведет ник для отображения на экране:
Скачиваем патч mod_logdb для Debian Lenny с официального сайта и накладываем патч:
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) так как не нашел сайт автора:
cd .. wget http://softnastroy.com/downloads/ejabberd/mod_shared-name.diff patch -p0 < mod_shared-name.diff
!!! Если Вам необходимо установить версию Ejabberd 2.0.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) с официального сайта:
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) с моего сайта:
wget http://softnastroy.com/downloads/ejabberd/patch-mod_logdb-2.1.3.diff
Скачиваем патч mod_logdb для Debian Wheezy (ejabberd 2.1.10) с официального сайта:
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) с моего сайта:
wget http://softnastroy.com/downloads/ejabberd/patch-mod_logdb-2.1.10.diff
Накладываем патч mod_logdb коммандой:
patch -p0 < patch-mod_logdb*
Должно выдать примерно:
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):
apt-get build-dep ejabberd
Переходим в папку /usr/src/ejabberd/ejabberd-2.1.10/
cd /usr/src/ejabberd/ejabberd-2.1.10/
Запускаем сборку нашего пропатченного ejabberd коммандой:
fakeroot dpkg-buildpackage -us -uc
тут идет компиляция и сборка и заканчивается примерно таким выводом:
... 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 (без пакетов оригинального исходного кода)
Переходим в папку вверх командой:
cd ..
и проверяем что у нас собралось командой ls:
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 добавляем строку:
192.168.0.1 jabber.local.ua jabber
где 192.168.0.1 - ip адресс нашего сервера в локальной сети
local.ua - для примера доменное имя у нас в сети
jabber.local.ua - доменное имя нашего jabber сервера, по которому будет подключатся пользователи к серверу.
изменяем имя сервера в файле /etc/hostname на jabber.local.ua
запускаем применение имени командой:
/etc/init.d/hostname.sh
Проверяем какое имя выводится командами:
hostname hostname -f
Должно выдать на каждую команду:
jabber.local.ua
Желательно также установить и настроить DNS сервер в локальной сети, чтобы пользователям не прописывать в клиенте IP сервера, а обойтись доменным именем сети.
Переходим к установке сервера.
Установка пропатченного и собранного ejabberd сервера выполняется командой:
dpkg -i /usr/src/ejabberd/ejabberd_2.1.5-3+squeeze1_i386.deb
Проверяем чтобы был модуль mod_logdb командой:
ls /usr/lib/ejabberd/ebin/*logdb*
Вывод команды:
/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
Скачиваем драйвера с оффициального сайта:
wget http://www.dp.uz.gov.ua/o.palij/mod_logdb/erlang-mysql-850-with-userflags.tar.bz2
Скачиваем драйвера с моего сайта:
wget http://softnastroy.com/downloads/ejabberd/erlang-mysql-850-with-userflags.tar.bz2
Распаковываем архив коммандой:
tar xvjf erlang-mysql-850-with-userflags.tar.bz2
переходим в папку erlang-mysql
cd erlang-mysql
И собираем драйвера коммандой:
sh build.sh
После сборки копируем драйвера в папку /usr/lib/ejabberd/ebin/ командой:
cp ebin/* /usr/lib/ejabberd/ebin/
Установка нашего ejabberd сервера закончена, далее переходим непостредственно к настройке свежеустановленного ejabberd сервера.
С Вами был Сергей Лазаренко.
Продолжение инструкции: Настройка ejabberd и модуля mod_logdb в Debian
Просмотрим видео о WIFI для чайников:
Add new comment