Установка ejabberd под Linux: различия между версиями
Rain (обсуждение | вклад) м (Вроде все) |
Rain (обсуждение | вклад) м (А про рута-то и забыли) |
||
(не показана 21 промежуточная версия 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): | ||
===Fedora=== | |||
===Fedora | |||
По умолчанию нужный репозиторий обычно подключен. | По умолчанию нужный репозиторий обычно подключен. | ||
yum install ejabberd | yum install ejabberd | ||
Строка 27: | Строка 21: | ||
Ejabberd входит в основную ветку репозитория, поэтому для установки просто скомандуйте: | Ejabberd входит в основную ветку репозитория, поэтому для установки просто скомандуйте: | ||
apt-get install ejabberd | apt-get install ejabberd | ||
===Gentoo=== | |||
Для установки ejabberd в Gentoo GNU/Linux выполните команды | |||
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. | ||
Строка 75: | Строка 84: | ||
Конечно же, следим за процессом, а не просто набираем команды. Программа сборки может сообщить об ошибке, но не каждый error или warning означает неисправимую ошибку. Например, процесс конфигурирования (команда configure) может сообщить, что не нашла компилятора java, библиотек odbc и wx, но это не является ошибкой. Просто соответствующие части erlang-а будут отключены. Перечисленные библиотеки нам не понадобятся для работы ejabberd. | Конечно же, следим за процессом, а не просто набираем команды. Программа сборки может сообщить об ошибке, но не каждый error или warning означает неисправимую ошибку. Например, процесс конфигурирования (команда configure) может сообщить, что не нашла компилятора java, библиотек odbc и wx, но это не является ошибкой. Просто соответствующие части erlang-а будут отключены. Перечисленные библиотеки нам не понадобятся для работы ejabberd. | ||
После сборки вернёмся в домашний каталог командой '''cd''' | После сборки вернёмся в домашний каталог командой '''cd'''. | ||
===ejabberd=== | ===ejabberd=== | ||
Строка 88: | Строка 97: | ||
После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска - /sbin/ejabberdctl - отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива. | После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска - /sbin/ejabberdctl - отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива. | ||
}} | |||
==Настройка== | ==Настройка== | ||
А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, | А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, какие порты прослушивать, и т.п. | ||
Настройка сервера сводится к редактированию файла конфигурации '''/etc/ejabberd/ejabberd. | Настройка сервера сводится к редактированию файла конфигурации '''/etc/ejabberd/ejabberd.yml''' (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя '''root''' в любом удобном для Вас текстовом редакторе, после чего найдите следующие секции: секцию '''acl''' и секцию '''hosts'''. | ||
В первом параметре задается [[Jabber ID]] администратора, а во втором - доменное имя сервера. Приведите эти строки примерно к такому виду: | В первом параметре задается [[Jabber ID]] администратора, а во втором - доменное имя сервера. Приведите эти строки примерно к такому виду: | ||
<pre> | |||
acl: | |||
admin: | |||
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: | ||
<pre> | |||
access_rules: | |||
register: | |||
- allow | |||
</pre> | |||
и замените '''deny''' на '''allow''' - без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента. | |||
Сохраните изменения и перезапустите ejabberd командой | Сохраните изменения и перезапустите ejabberd командой | ||
/etc/init.d/ejabberd restart | /etc/init.d/ejabberd restart | ||
<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 | ||
==Ссылки== | ==Ссылки== | ||
* [ | * [[Свой сервер: подробное руководство по установке ejabberd]] | ||
* [http://ylsoftware.com/news/499 Настройка ведения логов в конференции] | * [http://ylsoftware.com/news/499 Настройка ведения логов в конференции] | ||
* [http://linuxoid.in/RRD:_Статистика_онлайн-пользователей_для_ejabberd Графическая статистика онлайн-пользователей] | |||
[[Category:Свой сервер]] | [[Category:Свой сервер]] |
Текущая версия от 15:42, 2 ноября 2023
Рассмотрим установку сервера ejabberd на компьютеры под управлением одного из дистрибутивов GNU/Linux для использования в локальной сети с открытым доступом из Интернет и с использованием службы DynDNS.
Предполагается, что у Вас уже установлена операционная система, настроен доступ в Интернет, а доменное имя на DynDNS (допустим, это будет myjabber.ath.cx) указывает на внешний адрес Вашего компьютера (либо тот, который доступен из Вашей локальной сети, если Вы настраиваете сервер без возможности подключения к нему из Интернета).
Ejabberd может быть установлен на ваш сервер различными способами. Опишу три по нарастанию сложности:
- Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант.
- Предварительно собранные бинарные файлы с инсталлятором. Вариант не сложнее первого, но вряд ли оптимизирован именно под ваш дистрибутив.
- Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву, но очень хочется, чтобы сервер был оптимизированным и работал без ошибок - засучиваем рукава и переходим к соответствующему разделу. Тут вам понадобятся некоторые знания о Linux и/или помощь гуру.
Далее подробно рассмотрены эти варианты.
Установка из репозитория[править]
Дистрибутивов Linux великое множество, и нет никакой возможности рассмотреть детали установки в каждом из них. Упомянем наиболее популярные (предполагается наличие прав root):
Fedora[править]
По умолчанию нужный репозиторий обычно подключен.
yum install ejabberd
Debian-based дистрибутивы (Debian, *Ubuntu и другие)[править]
Ejabberd входит в основную ветку репозитория, поэтому для установки просто скомандуйте:
apt-get install ejabberd
Gentoo[править]
Для установки ejabberd в Gentoo GNU/Linux выполните команды
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ледуете указаниям программы установки.
Сборка из исходников[править]
Настройка[править]
А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, какие порты прослушивать, и т.п.
Настройка сервера сводится к редактированию файла конфигурации /etc/ejabberd/ejabberd.yml (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя root в любом удобном для Вас текстовом редакторе, после чего найдите следующие секции: секцию acl и секцию hosts.
В первом параметре задается Jabber ID администратора, а во втором - доменное имя сервера. Приведите эти строки примерно к такому виду:
acl: admin: 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"
В данном случае JID администратора задан admin@myjabber.ath.cx, а имя сервера, как уже условились выше - myjabber.ath.cx.
Теперь в том же файле найдите секцию access_rules, а в ней - параметр register:
access_rules: register: - allow
и замените deny на allow - без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента.
Сохраните изменения и перезапустите ejabberd командой
/etc/init.d/ejabberd restart
После этого создайте нового пользователя admin@myjabber.ath.cx используя Ваш Jabber-клиент. В браузере сервисов для этой учетной записи будут доступны основные функции администрирования, а используя параметры этого аккаунта Вы сможете авторизоваться в веб-интерфейсе по адресу http://myjabber.ath.cx:5280/admin