Установка ejabberd под Linux: различия между версиями

м
А про рута-то и забыли
м (А про рута-то и забыли)
 
(не показано 18 промежуточных версий 4 участников)
Строка 3: Строка 3:
Предполагается, что у Вас уже установлена операционная система, настроен доступ в Интернет, а доменное имя на DynDNS (допустим, это будет '''myjabber.ath.cx''') указывает на внешний адрес Вашего компьютера (либо тот, который доступен из Вашей локальной сети, если Вы настраиваете сервер без возможности подключения к нему из Интернета).
Предполагается, что у Вас уже установлена операционная система, настроен доступ в Интернет, а доменное имя на DynDNS (допустим, это будет '''myjabber.ath.cx''') указывает на внешний адрес Вашего компьютера (либо тот, который доступен из Вашей локальной сети, если Вы настраиваете сервер без возможности подключения к нему из Интернета).


[[Ejabberd]] может быть установлен на ваш сервер различными способами. Опишу три по убыванию предпочтительности:
[[Ejabberd]] может быть установлен на ваш сервер различными способами. Опишу три по нарастанию сложности:


# Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант.
# Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант.
# Предварительно собранные бинарные файлы с инсталлятором. Вариант не сложнее первого, но вряд ли оптимизирован именно под ваш дистрибутив.
# Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву, но очень хочется, чтобы сервер был оптимизированным и работал без ошибок - засучиваем рукава и переходим к соответствующему разделу. Тут вам понадобятся некоторые знания о Linux и/или помощь [[ru_wikipedia:Гуру|гуру]].
# Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву, но очень хочется, чтобы сервер был оптимизированным и работал без ошибок - засучиваем рукава и переходим к соответствующему разделу. Тут вам понадобятся некоторые знания о Linux и/или помощь [[ru_wikipedia:Гуру|гуру]].
# Предварительно собранные бинарные файлы с инсталлятором. Вариант весьма прост, но вряд ли оптимизирован именно под ваш дистрибутив.


Далее подробно рассмотрены эти варианты.
Далее подробно рассмотрены эти варианты.
Строка 14: Строка 14:
Дистрибутивов Linux великое множество, и нет никакой возможности рассмотреть детали установки в каждом из них. Упомянем наиболее популярные (предполагается наличие прав root):
Дистрибутивов Linux великое множество, и нет никакой возможности рассмотреть детали установки в каждом из них. Упомянем наиболее популярные (предполагается наличие прав root):


===openSuSE 11.1===
===Fedora===
Сначала подключим репозиторий, посвящённый программам обмена сообщениями:
<nowiki>zypper addrepo http://download.opensuse.org/repositories/server:/messaging/openSUSE_11.0/ Messaging</nowiki>
:Потом установим сервер:
zypper install ejabberd
 
===Fedora Core 11===
По умолчанию нужный репозиторий обычно подключен.
По умолчанию нужный репозиторий обычно подключен.
  yum install ejabberd
  yum install ejabberd
Строка 29: Строка 23:


===Gentoo===
===Gentoo===
Для установки ejabberd в Gentoo GNU/Linux выполните команду
Для установки ejabberd в Gentoo GNU/Linux выполните команды
  USE="pam ssl zlib mod_muc mod_pubsub web" emerge ejabberd
  echo "net-im/ejabberd pam ssl zlib mod_muc mod_pubsub web" >> /etc/portage/package.use
emerge ejabberd
 
==Установка готовых бинарников==
Установка из готовых бинарных пакетов делается за несколько простых шагов:
 
* Скачиваете подходящий '''run'''-файл по адресу https://www.process-one.net/en/ejabberd/archive/
* Запускаете командой '''sudo bash ejabberd-*.run'''
* Cледуете указаниям программы установки.


==Сборка из исходников==
==Сборка из исходников==
{{Hider hiding
|title=Пример для версии 2.0.5
|content=
Рассмотрим сборку stable-версии ejabberd-2.0.5.
Рассмотрим сборку stable-версии ejabberd-2.0.5.


Строка 92: Строка 97:


После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска - /sbin/ejabberdctl - отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива.
После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска - /sbin/ejabberdctl - отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива.
 
}}
==Установка готовых бинарников==
Рассмотрим установку stable-версии 2.0.5 для 32-битного Linux. Для начала нужно скачать инсталлятор:
wget http://www.process-one.net/downloads/ejabberd/2.0.5/ejabberd-2.0.5-linux-x86-installer.bin.gz
 
Распаковать его:
gunzip ejabberd-2.0.5-linux-x86-installer.bin.gz
 
И запустить:
chmod +x ejabberd-2.0.5-linux-x86-installer.bin
./ejabberd-2.0.5-linux-x86-installer.bin
 
Далее следуйте указаниям программы установки.


==Настройка==
==Настройка==
А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, на каких портах висеть, и т.п.
А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, какие порты прослушивать, и т.п.
 
Настройка сервера сводится к редактированию файла конфигурации '''/etc/ejabberd/ejabberd.cfg''' (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя root в любом удобном для Вас текстовом редакторе, после чего найдите следующие строки:


%% Admin user
Настройка сервера сводится к редактированию файла конфигурации '''/etc/ejabberd/ejabberd.yml''' (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя '''root''' в любом удобном для Вас текстовом редакторе, после чего найдите следующие секции: секцию '''acl''' и секцию '''hosts'''.
{acl, admin, {user, "", "localhost"}}.<br>
%% Hostname
{hosts, ["example.com"]}.


В первом параметре задается [[Jabber ID]] администратора, а во втором - доменное имя сервера. Приведите эти строки примерно к такому виду:
В первом параметре задается [[Jabber ID]] администратора, а во втором - доменное имя сервера. Приведите эти строки примерно к такому виду:


%% Admin user
<pre>
{acl, admin, {user, "admin", "myjabber.ath.cx"}}.<br>
acl:
%% Hostname
  admin:
{hosts, ["myjabber.ath.cx"]}.
    user:
      - "admin": "myjabber.ath.cx"
## hosts: Domains served by ejabberd.
## You can define one or several, for example:
## hosts:
##  - "example.net"
##  - "example.com"
##  - "example.org"
hosts:
  - "myjabber.ath.cx"
</pre>


В данном случае [[JID]] администратора задан [xmpp:admin@myjabber.ath.cx admin@myjabber.ath.cx], а имя сервера, как уже условились выше - myjabber.ath.cx.
В данном случае [[JID]] администратора задан [xmpp:admin@myjabber.ath.cx admin@myjabber.ath.cx], а имя сервера, как уже условились выше - myjabber.ath.cx.


Теперь в том же файле найдите строки
Теперь в том же файле найдите секцию access_rules, а в ней - параметр register:
 
%% No username can be registered via in-band registration:
%% To enable in-band registration, replace 'deny' with 'allow'
{access, register, [{deny, all}]}.


и замените '''deny''' на '''allow''' - без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента.
<pre>
 
access_rules:
[[Изображение:Ejabber lin install login 01.png|thumb|left|Логин в веб-интерфейсе]]
  register:
    - allow
</pre>


и замените '''deny''' на '''allow''' - без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента.


Сохраните изменения и перезапустите ejabberd командой
Сохраните изменения и перезапустите ejabberd командой


  /etc/init.d/ejabberd restart
  /etc/init.d/ejabberd restart
{{-}}
[[Изображение:Ejabberd lin install 01.png|thumb|left|Сервисы и статистика сервера]]


<center>
<gallery>
Изображение:Ejabber lin install login 01.png|Логин в веб-интерфейсе
Изображение:Ejabberd lin install 01.png|Сервисы и статистика сервера
</gallery>
</center>


После этого создайте нового пользователя [xmpp:admin@myjabber.ath.cx admin@myjabber.ath.cx] используя Ваш Jabber-клиент. В [[Браузер сервисов|браузере сервисов]] для этой учетной записи будут доступны основные функции администрирования, а используя параметры этого аккаунта Вы сможете авторизоваться в веб-интерфейсе по адресу http://myjabber.ath.cx:5280/admin
После этого создайте нового пользователя [xmpp:admin@myjabber.ath.cx admin@myjabber.ath.cx] используя Ваш Jabber-клиент. В [[Браузер сервисов|браузере сервисов]] для этой учетной записи будут доступны основные функции администрирования, а используя параметры этого аккаунта Вы сможете авторизоваться в веб-интерфейсе по адресу http://myjabber.ath.cx:5280/admin
{{-}}


==Ссылки==
==Ссылки==


* [http://www.ejabberd.im Официальный сайт ejabberd (англ.)]
* [[Свой сервер: подробное руководство по установке ejabberd]]
* [http://www.process-one.net/en/ejabberd/docs Официальная документация по ejabberd (англ.)]
* [http://erlang.org Официальный сайт Erlang (англ.)]
* [http://ylsoftware.com/news/499 Настройка ведения логов в конференции]
* [http://ylsoftware.com/news/499 Настройка ведения логов в конференции]
* [http://linuxoid.in/RRD:_Статистика_онлайн-пользователей_для_ejabberd Графическая статистика онлайн-пользователей]


[[Category:Свой сервер]]
[[Category:Свой сервер]]