Содержание

Установка ejabberd

У вас есть несколько вариантов установки ejabberd:

Быстрый старт

Бинарный установщик развернет и настроит полнофункциональный сервер ejabberd и не потребует каких-либо дополнительных зависимостей. Он включает в себя урезанную версию Erlang. Таким образом, при использовании установщика ejabberd вам не нужно устанавливать Erlang отдельно.

Эти мануалы предполагают установку на localhost для целей разработки. В этом документе при упоминании ejabberd-YY.MM мы предполагаем, что YY.MM - номер выпуска, например 19.02. Также обратите внимание, что сценарии установщика поддерживают множество параметров, полезных для производственной или автоматической установки по сценарию. Вы можете прочитать больше об опциях установщика при автоматической установке.

Установка в Windows

После успешной установки вы должны увидеть на рабочем столе два новых ярлыка: «Запустить ejabberd» и «Остановить ejabberd». Чтобы запустить или остановить ejabberd, щелкните правой кнопкой мыши на каждом ярлыке и выберите «Запуск от имени администратора», затем подтвердите диалоговое окно Windows, нажав «Да».

После запуска ejabberd в браузере по умолчанию должен открыться экран приветствия. Вы можете перейти на веб-панель мониторинга по адресу http://localhost:5280/admin и ввести имя пользователя admin и пароль для доступа. Следующий шаг - узнать, как настроить ejabberd.

Если во время установки что-то пойдет не так, и вы захотите начать с нуля, вы найдете файл ejabberd uninstall.exe в каталоге, где он был установлен. По умолчанию это C:\Program Files\ejabberd-YY.MM\uninstall.app. Деинсталлятор остановит ваш сервер ejabberd и удалит все его файлы. Файлы журналов могут остаться, поэтому, чтобы полностью удалить ejabberd, просто удалите его основную папку.

Установка в Linux

chmod a+x ejabberd-YY.MM-linux-x86_64-installer.run

и запустить его с помощью командной строки:

./ejabberd-YY.MM-linux-x86_64-installer.run

После успешной установки запустите ejabberd с помощью терминала. В командной строке перейдите в рабочую директорию ejabberd и выполните ./bin/ejabberdctl live. Это запустит ejabberd в интерактивном режиме с несколькими полезными сообщениями, напечатанными в терминале.

Теперь вы можете перейти на веб-панель мониторинга по адресу http://localhost:5280/admin и ввести имя пользователя admin и пароль для доступа. Следующий шаг - узнать, как настроить ejabberd.

Если во время установки что-то пойдет не так, и вы захотите начать с нуля, вы найдете скрипт деинсталляции ejabberd в каталоге, где он был установлен.

Установка в macOS

Использование бинарного установщика

Прежде чем начать установку ejabberd, убедитесь, что ваш Mac поддерживает приложения от определенных разработчиков. Для этого перейдите в «Настройки Mac», «Безопасность и конфиденциальность» и выберите «Разрешить загрузку приложений из: App Store и определенных разработчиков». Затем вы можете скачать ejabberd и продолжить установку:

По завершении сценария установки он пытается запустить ejabberd. Может появиться приглашение с просьбой разрешить входящие соединения для beam.smp. Если вы не разрешите, установка не сможет завершиться успешно.

Если во время установки что-то пойдет не так, и вы захотите начать с нуля, вы найдете файл ejabberd uninstall.app в каталоге, где он был установлен. По умолчанию это /Apllications/ejabberd-YY.MM/uninstall.app. Деинсталлятор остановит ваш сервер ejabberd и удалит все его файлы. Файлы журналов могут остаться, поэтому, чтобы полностью удалить ejabberd, просто удалите его основную папку.

Бинарные установщики ejabberd до версии 19.02 не имели подписи Apple Developer. Если macOS жалуется, когда вы пытаетесь установить ejabberd старше 19.02 с бинарным установщиком с сообщением «ejabberd-installer поврежден и его нельзя открыть» - тогда вам нужно временно отключить привратника, чтобы иметь возможность установить ejabberd:

sudo spctl --master-disable

Установить ejabberd и снова включить его

sudo spctl --master-enable

Использование Homebrew

Homebrew - менеджер пакетов для macOS, целью которого является портирование многих программ Unix и Linux, которые нелегко доступны или несовместимы. Установка Homebrew проста и инструкция доступна на его сайте.

Запустите ваш ejabberd, запустив /usr/local/sbin/ejabberdctl live. Этот интерактивный режим печатает полезные сообщения в терминале. Домен по умолчанию, используемый ejabberd Homebrew - localhost.

Создайте учетную запись администратора, запустив /usr/local/sbin/ejabberdctl, зарегистрируйте пароль администратора localhost. Это создает учетную запись admin@localhost с указанным паролем.

Теперь вы можете перейти на веб-панель мониторинга по адресу http://localhost:5280/admin и ввести имя пользователя admin и пароль для доступа. Без конфигурации здесь не так много всего, поэтому следующий шаг - узнать, как настроить ejabberd.

Установка из исходного кода

Канонической формой распространения стабильных выпусков ejabberd является пакет исходного кода. Компилировать ejabberd из исходного кода довольно просто в *nix системах, если ваша система имеет все зависимости.

Технические требования

Чтобы скомпилировать ejabberd в «Unix-like» операционной системе, вам необходимо:

Загрузка

Вышедшие версии ejabberd доступны на официальной странице загрузки **ProcessOne**.

Кроме того, последний исходный код разработки может быть получен из репозитория Git с помощью команд:

git clone git://github.com/processone/ejabberd.git ejabberd
cd ejabberd
./autogen.sh

Компиляция

Для компиляции ejabberd выполните команды:

./configure --enable-user=ejabberd --enable-mysql

Это говорит конфигуратору, как подготовить сервер для установки с запуском от пользователя по имени ejabberd, поэтому, пожалуйста, создайте этого пользователя или попросите использовать другого локального пользователя. Не рекомендуется запускать ejabberd с привилегиями root.

Для компиляции ejabberd вам потребуется доступ в Интернет, поскольку зависимости будут загружаться в зависимости от выбранных параметров.

Сценарий конфигурации сборки допускает несколько вариантов. Чтобы получить полный список, выполните команду:

./configure --help

Опции

Некоторые доступные опции, которые могут вас заинтересовать в модификации:

Вот другие доступные варианты, которые являются экспериментальными и не рекомендуются:

Установка

Чтобы установить ejabberd в каталогах назначения, выполните команду make install.
Обратите внимание, что вам, вероятно, нужны административные привилегии в системе для установки ejabberd.

По умолчанию создаются файлы и каталоги:

Особые заметки

BSD

Команда для компиляции ejabberd в системах BSD - это gmake.

Macos

При компиляции из исходников в macOS вы должны настроить ejabberd на использование пользовательских OpenSSL, Yaml, iconv. Наилучший подход - использовать Homebrew для установки всех зависимостей, а затем экспортировать ваш собственный путь, чтобы настроить.

brew install git erlang elixir openssl expat libyaml libiconv libgd sqlite rebar rebar3 automake autoconf 
export LDFLAGS="-L/usr/local/opt/openssl/lib -L/usr/local/lib -L/usr/local/opt/expat/lib"
export CFLAGS="-I/usr/local/opt/openssl/include/ -I/usr/local/include -I/usr/local/opt/expat/include"
export CPPFLAGS="-I/usr/local/opt/openssl/include/ -I/usr/local/include -I/usr/local/opt/expat/include"
./configure --enable-sqlite
make

Установка с определенными пакетами для операционной системы

Некоторые операционные системы предоставляют специальный пакет ejabberd, адаптированный к архитектуре системы и библиотекам. Обычно он также проверяет зависимости и выполняет основные задачи по настройке, такие как создание начальной учетной записи администратора. Некоторые примеры - Debian и Gentoo. Обратитесь к ресурсам, предоставляемым вашей операционной системой для получения дополнительной информации.

Теперь ProcessOne предоставляет ejabberd в RPM и DEB (в одном пакете), начиная с версии 15.06 ejabberd. Это самодостаточные пакеты, также содержащие минимальный дистрибутив Erlang. Это гарантирует, что это не мешает вашей существующей версии Erlang. И также хороший способ убедиться, что ejabberd будет работать с последней версией Erlang. Вы можете скачать пакеты с официальной страницы загрузки ejabberd.

Запуск ejabberd

ejabberd может быть запущен вручную в любое время или автоматически операционной системой во время загрузки системы.
Чтобы запустить и остановить ejabberd вручную, используйте ярлыки на рабочем столе, созданные установщиком. Если на машине нет графической системы, используйте сценарии 'start' и 'stop' в каталоге 'bin', где установлен ejabberd.
Вы также можете использовать сценарий администрирования командной строки ejabberdctl для запуска и остановки ejabberd. Если вы указали опцию конфигурации –enable-user=USER (смотрите раздел Компиляция), вы можете выполнить ejabberdctl с этой системной учетной записью или пользователем root.

Примеры использования:

prompt> ejabberdctl start
prompt> ejabberdctl status
The node ejabberd@localhost is started with status: started
ejabberd is running in that node
prompt> ejabberdctl stop

Если ejabberd не запускается правильно и генерируется файл аварийного дампа, значит возникла серьезная проблема. Вы можете попробовать запустить ejabberd с помощью скрипта bin/live.bat в Windows или с помощью команды bin/ejabberdctl live в других операционных системах. Таким образом, вы увидите сообщение об ошибке, предоставленное Erlang и сможете определить, в чем именно проблема.

Сценарий администрирования ejabberdctl включен в каталог bin. Пожалуйста, обратитесь к разделу ejabberdctl для получения подробной информации о ejabberdctl и настраиваемых параметрах для точной настройки системы времени исполнения Erlang.

Автостарт в Linux

В системе *nix создайте системного пользователя с именем 'ejabberd', предоставьте ему доступ на запись в базу данных database/ и logs/ и установите его как home. Если вы хотите, чтобы ejabberd запускался как демон во время загрузки с этим пользователем, скопируйте ejabberd.init из каталога 'bin' в нечто вроде /etc/init.d/ejabberd или (в дистрибутиве systemd) скопируйте ejabberd.service в /etc/systemd/system/, запустите от имени root systemctl daemon-reload, а с помощью systemctl включите ejabberd.service. Затем вы можете вызвать /etc/inid.d/ejabberd start или (с помощью systemd) systemctl запустить ejabberd от имени пользователя root, чтобы запустить сервер.

Когда запускается ejabberd, процессы, которые запускаются в системе - beam или beam.smp, а также epmd. Для получения дополнительной информации о epmd обратитесь к разделу, касающемуся epmd.

Автостарт в Windows

Установщик Windows также добавляет ejabberd в качестве системной службы и ярлык консоли отладки для опытных администраторов. Если вы хотите, чтобы ejabberd запускался автоматически во время загрузки системы, перейдите в настройки служб Windows и установите автоматический запуск ejabberd. Обратите внимание, что служба Windows - это функция, которая все еще находится в разработке, и, например, она не читает файл ejabberdctl.cfg.

В Microsoft Windows процессы Erlang для ejabberd называются erl.exe и epmd.exe.

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

Аккаунт администратора

Бинарный установщик ejabberd запрашивает учетную запись администратора, поэтому в этом случае вы, вероятно, можете пропустить этот шаг. Однако, если вы используете другой способ установки ejabberd, вам может потребоваться создать учетную запись администратора XMPP. Вам нужна учетная запись XMPP с правами администратора для входа в ejabberd WebAdmin.
Вот шаги для его создания:

Существует два способа регистрации учетной записи XMPP:

ejabberdctl register admin1 example.org password
acl:
  admin:
    user:
      - "admin1": "example.org"
access:
  configure:
    admin: allow

Вы можете предоставить административные привилегии многим учетным записям XMPP, а также учетным записям с других серверов XMPP.

Backend баз данных

По умолчанию ejabberd использует собственную базу данных для хранения данных времени выполнения Mnesia. Во многих случаях вам может понадобиться разрешить ejabberd использовать внешнюю базу данных SQL. Поддерживаемые SQL-серверы: MySQL, PostgreSQL, Sqlite, MSSQL.

При использовании внешней базы данных ejabberd не создает схемы и таблицы самостоятельно. Вы должны создать схему перед запуском ejabberd. Если вы устанавливаете ejabberd из исходников, вы найдете скрипт sql для своего бэкэнда в каталоге установки. По умолчанию: /usr/local/lib/ejabberd/priv/sql. При установке ejabberd из установщика Process-One сценарии инициализации находятся по пути установки ejabberd в <base>/lib/ejabberd*/priv/sql.

Смотрите схемы базы данных SQL ejabberd для получения подробной информации о схемах базы данных. Смотрите пошаговые руководства по настройке баз данных для получения подробных инструкций по их настройке.