Установка ejabberd в CentOS 5.2

Jabber (он же XMPP) – открытый расширяемый протокол обмена сообщениями. Благодаря этим свойствам любой желающий может установить и настроить свой собственный сервер, и можно создать множество пользователей на своем домене, к примеру alexander@oioki.ru 😉

Jabber активно распространяется в интернете, и многие популярные сайты, такие как В Контакте, ya.ru, qip.ru, GTalk и многие другие создали свои сервера на основе Jabber. Установив сервер на своем домене, можно беспрепятственно общаться с людьми из всех этих сервисов. Взгляните на краткие преимущества Jabber на Youtube.

Итак, хватит словес, инструкция по настройке – под катом!

Установка и настройка

Начнем с установки пакета под незамысловатым названием ejabberd:

# yum install ejabberd

У нас в системе появится пользователь ejabberd и будет создано каталог /etc/ejabberd с файлами ejabberd.cfg, ejabberdctl.cfg и ejabberd.pem. Начнем редактировать первый из них, ejabberd.cfg:

Некоторым пользователям нужно дать права на удаленное управление XMPP-сервером. Для этого нужно вписать следующую строку. Таким образом, администратором сервера будет юзер с JID admin@myserver.ru

{acl, admin, {user, "admin", "myserver.ru"}}.

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

Теперь настраиваем привязку XMPP-сервера к домену. Ищем строку по слову hosts и изменяем на следующее:

{hosts, ["myserver.ru"]}.

Проверяем, чтобы была в наличии секция, описывающая рабочие порты XMPP-сервиса. TCP-порт 5222 используется для клиентских подключений, 5269 – для входящих межсерверных подключений (S2S, Server-to-Server), 5280 – порт для веб-админки:

{listen,
 [

  {5222, ejabberd_c2s, [
			%%
			%% If TLS is compiled in and you installed a SSL
			%% certificate, specify the full path to the
			%% file and uncomment this line:
			%%
			{certfile, "/etc/ejabberd/ejabberd.pem"}, starttls,

			{access, c2s},
			{shaper, c2s_shaper},
			{max_stanza_size, 65536}
		       ]},

  {5269, ejabberd_s2s_in, [
			   {shaper, s2s_shaper},
			   {max_stanza_size, 131072}
			  ]},

  {5280, ejabberd_http, [
			 %%{request_handlers,
			 %% [
			 %%  {["pub", "archive"], mod_http_fileserver}
			 %% ]},
			 captcha,
			 http_bind,
			 http_poll,
			 %%register,
			 web_admin
			]}

 ]}.

Первый запуск

Основная настройка закончена. Попробуем запустить Jabber-сервер:

# /etc/init.d/ejabberd start
Запускается ejabberd:                                      [  OK  ]

Проверим, что он действительно запустился:

# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      27697/beam          
tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      27697/beam          
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      3951/epmd           
tcp        0      0 0.0.0.0:56819           0.0.0.0:*               LISTEN      27697/beam          
tcp        0      0 0.0.0.0:5269            0.0.0.0:*               LISTEN      27697/beam          

Также проверить работу Jabber-сервера можно так:

# ejabberdctl status
The node ejabberd@myserver is started with status: started
ejabberd 2.1.6 is running in that node

По умолчанию ejabberd не позволяет регистрировать аккаунты извне с помощью клиентов. Поэтому нужно добавить пользователя на этот хост из консоли. Эта команда зарегистрирует пользователя admin@myserver.ru с паролем 123:

# ejabberdctl register admin myserver.ru 123
User admin@myserver.ru successfully registered

Веб-админка

Теперь идем по адресу http://myserver.ru:5280/admin/ и вводим данные только что зарегистрированного пользователя admin:

После аутентификации мы попадаем на главную страничку веб-админки. Здесь можно делать много интересных вещей, но здесь я просто покажу, как с помощью веб-админки добавить другого пользователя. Выбираем пункт Virtual Hosts:

Затем выбираем свой домен myserver.ru и попадаем на страницу администрирования домена:

Тут нужно выбрать пункт Пользователи – и вы увидите список всех зарегистрированных пользователей, а также форму добавления нового пользователя. Как видите, все очень просто.

Бекап!

После добавления всех пользователей, которые нужны, не забудьте сделать бекап базы Jabber-сервера. Сделать это очень просто из консоли:

# mkdir -p /var/lib/ejabberd/backup
# ejabberdctl backup /var/lib/ejabberd/backup/2011.07.11

Похожие статьи

6 thoughts on “Установка ejabberd в CentOS 5.2”

  1. а если порты не открываются после запуска service ejabberd start , то что делать?

Leave a Reply

Your email address will not be published. Required fields are marked *