Крайний раз ставил и работал это чудо лет так наверное 5 назад и запомнился он мне своей некоторой странностью, со временем я понял что меня напрягало и раздражало – erlang, детище компании эрриксон. Именно на нем написан сей джаббер сервер, не берусь судить язык – не знаю его, но за него говорит то – что на этом языке делают сложные распределенные системы для решения сложных задач.
Последние годы работал я все время с openfire в силу его простоты – кнопочное админство )))) – поставли и через веб управляешь им, но тут стала задача поставить именно ejabberd. В ходе копания в воспоминаниях наткнулся на тот факт что его вырезали из репы Centos, и это удивило. За одно выяснилось что проект хотя и загибался когда то – был разделен (подозреваю завладели им кто то из рунета ловко маскирующиеся под буджуев), в результате получилось две версии софта
- Community – полностью халявный
- SaS – на сервере компании получаете свой джаббер, но надо платить за общение
- Business – на своем сервере за денежку
В моем случае естественно разбирался с фри ерсией, по прошлому опыту скажу что большая часть инфы в интернете относится к старой версии, в новой хитрые буржуи изменили конфиг и перенесли его на YML, а за одно почистили все то что было в комьюнити, теперь решение проблем и вопросов некоторый гемор. Что в итоге настроилось и делалось:
Подготовил сервер на базе Centos 7 – битность не важна все равно бинарный пакет есть только под 32 бита (можно собрать и из исходноков под себя), я изначально по старой привычке подготовил сервак под исходики:
1 2 3 |
yum install autoconf gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel \ autoconf java-1.8.0-openjdk-devel git epel-release libyaml-devel expat-devel \ wget mc vim |
После чего подключил репу с erlang и поставил его:
1 2 3 |
rpm -Uvh https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm yum update yum install erlang |
Далее не буду расписывать сборку исходников – так как они нужны по факту если собираешься что то менять в станадртной сборки (работа с базой внешней для атвориазции и зранения инфы)
ставлю ejabberd из пакета для Centos
1 2 3 |
cd /usr/src/ && wget https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/16.04/ejabberd-16.04-linux-x86_64-installer.run chmod +x ejabberd-16.04-linux-x86_64-installer.ru ./ejabberd-16.04-linux-x86_64-installer.ru |
В процессе установки будет задано несколько вопросов, стоит отвечать внимательно:
Выбираем язык установки:
Принимаем лицензионное соглашение:
Указываем каталог установки (я оставил без изменения)
Указываем домен jabber сервера
Указываем имя администратора сервера (настоятельно рекомендуется задавать имя отличное от стандартного, в целях безопасности)
Задаем пароль администратора:
Далее идет важный момент для нагруженных систем, если планируется большое кол-во клиентов, лучше изначально создавать кластер, подтверждаем что узел будет в кластере:
Соглашаемся с уведомлением, что для работы кластера необходимо перенести с мастер сервера .erlang.cookie
Указываем имя узла кластера:
Последний этап – подтверждаем начало установки, после подтверждения начнется установка:
После завершения установки, мы получаем первично настроенный ejabberd сервер. Далее буду рассматривать аспекты работы и тонкой настройки сервера.
Спасибо, настроил по Вашей статье свой личный jabber сервер [CENSORED] 🙂
Есть веб-клиент – [CENSORED] =)