Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

01
Мар 2012
sergldom
автор
0
комментариев
Рейтинг статьи:
4
Средняя: 4 (1 оценка)

Установка ejabberd с модулем mod_logdb в Debian

Установка ejabberd с модулем mod_logdb в Debian      Задача - установить корпоративный 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
' > /etc/apt/sources.list

Для 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:

 echo 'deb 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
' >> /etc/apt/sources.list

      Устанавливаем нужные пакеты для компиляции исходных кодов для всех версий 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 находятся на <![CDATA[]]>сайте<![CDATA[]]>

      Для 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 для чайников:

Рейтинг статьи: 

4
Средняя: 4 (1 оценка)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

Добавить комментарий

Filtered HTML

  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.