Редактирование: Установка ejabberd под Linux

Материал из Мир Jabber
Перейти к навигацииПерейти к поиску

Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
Рассмотрим установку сервера [[ejabberd]] на компьютеры под управлением одного из дистрибутивов GNU/Linux для использования в локальной сети с открытым доступом из Интернет и с использованием службы DynDNS.
==С чего начать?==


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


[[Ejabberd]] может быть установлен на ваш сервер различными способами. Опишу три по нарастанию сложности:
# Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант. Поэтому не будем его обсуждать - просто берите в руки ваш любимый менеджер пакетов (YaST, synaptic, а то может и zypper, apt-get или emerge) и за дело.
# Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву - засучиваем рукава и переходим к следующему разделу.
# Предварительно собранные бинарные файлы с инсталлятором. Вариант весьма прост, но вряд ли оптимизирован именно под ваш дистрибутив, поэтому я не буду обсуждать его. Только покажу, как получить и запустить инсталлятор, например, 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


# Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант.
==Собираем из исходников==
# Предварительно собранные бинарные файлы с инсталлятором. Вариант не сложнее первого, но вряд ли оптимизирован именно под ваш дистрибутив.
# Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву, но очень хочется, чтобы сервер был оптимизированным и работал без ошибок - засучиваем рукава и переходим к соответствующему разделу. Тут вам понадобятся некоторые знания о Linux и/или помощь [[ru_wikipedia:Гуру|гуру]].
 
Далее подробно рассмотрены эти варианты.
__TOC__
==Установка из репозитория==
Дистрибутивов 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ледуете указаниям программы установки.
 
==Сборка из исходников==
{{Hider hiding
|title=Пример для версии 2.0.5
|content=
Рассмотрим сборку stable-версии ejabberd-2.0.5.
Рассмотрим сборку stable-версии ejabberd-2.0.5.


Строка 53: Строка 27:
Для простоты операций будем работать пользователем root в его домашнем каталоге. Не забудьте потом прибраться.
Для простоты операций будем работать пользователем root в его домашнем каталоге. Не забудьте потом прибраться.


Итак, нам нужен исходный код ejabberd. Идём на [http://www.ejabberd.im официальный сайт] и выбираем, что нужно. Лучше выбирать stable версию, но если вы очень любите новые фишки и не боитесь нестабильной работы, то берите beta, testing или [[ru_wikipedia:Subversion|SVN]] версии.
Итак, нам нужен исходный код ejabberd. Идём на [http://www.ejabberd.im официальный сайт] и выбираем, что нужно. Лучше выбирать stable версию, но если вы очень любите новые фишки и не боитесь глюков, то берите beta, testing или cvs версии.


Я выбрал stable-версию 2.0.5 и скачал её:
Я выбрал stable-версию 2.0.5 и скачал её:
Строка 60: Строка 34:
Конечно же, у вас есть эта удобнейшая утилита - wget. ;)
Конечно же, у вас есть эта удобнейшая утилита - wget. ;)


Ещё нам понадобится свеженький [[ru_wikipedia:Erlang|Erlang]] - это компилятор языка, на котором написан ejabberd. Если Erlang есть в вашем репозитории, то лучше воспользоваться им. Если нет - покажу, как собрать его из [http://erlang.org/download.html исходных кодов].
Ещё нам понадобится свеженький [http://ru.wikipedia.org/wiki/Erlang Erlang] - это компилятор языка, на котором написан ejabberd. Вряд ли он есть в вашем репозитории, потому я отдельно покажу, как собрать его из [http://erlang.org/download.html исходных кодов]. Как программист, не удержусь от пояснения, зачем было использовать этот с виду громоздкий и неудобный язык. Он громоздок и неудобен действительно лишь с виду, для написания программ вроде hello world, однако предоставляет прекрасный инструментарий многопоточного и распределённого программирования. Это позволит вам единожды написанную и собранную программу использовать на огромных кластерах, состоящих из машин любой архитектуры, в которые будет проще простого добавить новые вычислительные мощности. Даже java не обладает подобными возможностями. Именно поэтому ejabberd считается одним из самых быстрых и масштабируемых серверов протокола XMPP.
 
Как программист, не удержусь от пояснения, зачем было использовать этот с виду громоздкий и неудобный язык. Он громоздок и неудобен действительно лишь с виду, для написания программ вроде hello world, однако предоставляет прекрасный инструментарий многопоточного и распределённого программирования. Это позволит вам единожды написанную и собранную программу использовать на огромных кластерах, состоящих из машин любой архитектуры, в которые будет проще простого добавить новые вычислительные мощности. Даже Java не обладает подобными возможностями. Именно поэтому ejabberd считается одним из самых быстрых и масштабируемых серверов протокола XMPP.


Но довольно лирики.
Но довольно лирики.
Строка 82: Строка 54:
  make install
  make install


Конечно же, следим за процессом, а не просто набираем команды. Программа сборки может сообщить об ошибке, но не каждый error или warning означает неисправимую ошибку. Например, процесс конфигурирования (команда configure) может сообщить, что не нашла компилятора java, библиотек odbc и wx, но это не является ошибкой. Просто соответствующие части erlang-а будут отключены. Перечисленные библиотеки нам не понадобятся для работы ejabberd.
Конечно же, следим за процессом, а не просто тупо набираем команды. Программа сборки может сообщить об ошибке, но не каждый error или warning означает неисправимую ошибку. Например, процесс конфигурирования (команда configure) может сообщить, что не нашла компилятора java, библиотек odbc и wx, но это не является ошибкой. Просто соответствующие части erlang-а будут отключены. Перечисленные библиотеки нам не понадобятся для работы ejabberd.


После сборки вернёмся в домашний каталог командой '''cd'''.
После сборки вернёмся в домашний каталог:
cd ~


===ejabberd===
===ejabberd===
Строка 90: Строка 63:
  tar zxf ejabberd-2.0.5.tar.gz -С buildtmp  
  tar zxf ejabberd-2.0.5.tar.gz -С buildtmp  


Переходим в каталог с исходниками и собираем ejabberd:
Идём куда надо и собираем ejabberd:
  cd buildtmp/ejabberd-2.0.5/src
  cd buildtmp/ejabberd-2.0.5/src
  ./configure
  ./configure
Строка 96: Строка 69:
  make install
  make install


После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска - /sbin/ejabberdctl - отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива.
После всех этих манипуляций все нужные файлы разложены где надо. Конфиги, в частности,- в /etc/ejabberd, скрипт запуска - /sbin/ejabberdctl - отрабатывает команду start, что позволяет добавить его куда надо в rc.d...
}}
 
==Настройка==
А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, какие порты прослушивать, и т.п.
 
Настройка сервера сводится к редактированию файла конфигурации '''/etc/ejabberd/ejabberd.yml''' (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя '''root''' в любом удобном для Вас текстовом редакторе, после чего найдите следующие секции: секцию '''acl''' и секцию '''hosts'''.
 
В первом параметре задается [[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.
 
Теперь в том же файле найдите секцию access_rules, а в ней - параметр register:
 
<pre>
access_rules:
  register:
    - allow
</pre>
 
и замените '''deny''' на '''allow''' - без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента.  


Сохраните изменения и перезапустите ejabberd командой
==Что дальше?==
А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, на каких портах висеть, и т.п.


/etc/init.d/ejabberd restart
Но это я не буду рассматривать. Хотя бы потому, что есть [http://www.process-one.net/en/ejabberd/guide_en подробная официальная документация (на английском, конечно же)], а всё изложенное тут - инструкция по быстрой сборке и установке.


<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
Всё для вас, [http://new-m0ray.livejournal.com m0Ray]. Просыпайтесь, вать машу! (С)


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


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


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

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.2 (см. Мир Jabber:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: