Установка XMPP-сервера ejabberd 18.12.1 на Debian 9 Stretch

Появилась потребность в корпоративном Jabber-сервере (XMPP). Для реализации задачи выбрал ejabberd, по заявлениям разработчика он легкий, быстрый и надежный как скала.

 

Собирать ejabberd версии 18.12.1, будем из исходников на Debian 9 Stretch.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

apt-get update && sudo apt-get upgrade -y

 

Устанавливаем необходимые зависимости:

apt-get install gcc g++ make autoconf erlang mysql-server git libssl-dev libyaml-dev zlib1g-dev libexpat1-dev imagemagick -y

 

Установка ejabberd

Скачиваем исходники ejabberd релизной версии 18.12.1, распаковываем архив и переходим в него:

wget https://github.com/processone/ejabberd/archive/rel-18.12.1.zip

unzip rel-18.12.1.zip
cd ejabberd-rel-18.12.1

 

Выполняем настройку сборки. Я указал пути размещения файлов, в стандартные директории, включил MySQL/STUN/SIP поддержку:

./autogen.sh
./configure --prefix= --exec-prefix=/usr --enable-mysql --enable-stun --enable-sip

 

После запускаем компиляцию и выполняем установку:

make
make install

 

По окончании установки, выполним настройки для запуска и нормальной работы ejabberd. Добавляем unit-файл в систему:

cp ejabberd.service /etc/systemd/system/multi-user.target.wants/ejabberd.service
ln -s /etc/systemd/system/multi-user.target.wants/ejabberd.service /lib/systemd/system/ejabberd.service

 

Создадим пользователя ejabberd, от имени которого будет запускаться ejabberd-сервер и выставляем правильные права на каталоги:

useradd ejabberd -d /var/lib/ejabberd -s /bin/sh -c "Ejabberd service user"

chown root:ejabberd -R /etc/ejabberd
chown ejabberd:ejabberd -R /var/lib/ejabberd
chmod 700 -R /var/lib/ejabberd
chown root:ejabberd /var/log/ejabberd
chmod 770 /var/log/ejabberd
chmod 755 /usr/sbin/ejabberdctl

 

Теперь можно запустить ejabberd-сервер:

service ejabberd start

 

Операции после установки

После установки пакета ejabberd, рекомендуется настроить на использование базы данных MySQL и не использовать встроенную Mnesia. Это связано с ограничением Mnesia на размер БД (2Gb). Так же необходимо создать административную учетную запись и назначить ей права доступа администратора.

 

Подключение базы данных MySQL

Сперва создадим необходимую базу данных:

mysql -u root -p

CREATE DATABASE ejabberd CHARACTER SET utf8;
CREATE USER 'ejabberd'@'localhost' IDENTIFIED BY 'ejabberd';
GRANT ALL PRIVILEGES ON ejabberd.* TO 'ejabberd'@'localhost';
FLUSH PRIVILEGES;
EXIT

 

Скачиваем SQL-схему, необходимую ejabberd и загружаем ее в созданную базу данных:

wget https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.sql
mysql -D ejabberd -u ejabberd -p < mysql.sql

 

В файле конфигурации /etc/ejabberd/ejabberd.yml, добавляем параметры:

# Параметры подключения к БД MySQL
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "ejabberd"

# Использовать БД MySQL для аутентификации
auth_method: sql

# Использовать БД MySQL для всех модулей
default_db: sql

 

Перезагружаем службу XMPP:

service ejabberd restart

 

Административная учетная запись

Для работы с консолью ejabberd, необходимо войти под уч. записью ejabberd:

su ejabberd

 

Создадим учетную запись (прим. admin), для домена (прим. example.com):

/usr/sbin/ejabberdctl register admin example.com password
Если в системе установлена и используется sudo, то можно эту же команду выполнять при помощи sudo, только с указание от какого пользователя выполнить команду (прим. sudo -u ejabberd ejabberdctl register admin localhost password)

 

Добавим права администратора, для созданной учетной записи «admin». В файле конфигурации /etc/ejabberd/ejabberd.yml, добавим следующее:

acl:
  admin:
    user:
     - "admin": "example.com"

 

Перезагружаем службу XMPP:

service ejabberd restart

 

Теперь через Web-интерфейс, который доступен по адресу — http://example.com:5280/admin , можно авторизоваться используя созданную учетную запись (admin@example.com).

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

БесполезноСлабоватоПриемлемоОтличноПревосходно (2 голос(ов), в среднем: 5,00 из 5)
Загрузка...

Всего комментариев: 3 Комментировать

  1. Алексей Исаев /

    После установки на debian9 сервис ejabberd запускается очень долго, 4-5 минут.
    Столько же занимает restart

    У вас так же было?

    1. Жаконда / Автор записи

      Нет, все запускается быстро.

  2. dja /

    Единственное, добавить, что для успеха кампании надо
    sudo apt-get install erlang-p1-mysql
    А то ведь не запустится.

Оставить ответ

7 + четырнадцать =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика