| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| ejabberd:3 [2019/03/15 04:14] – Luciferus | ejabberd:3 [2025/07/04 02:58] (текущий) – внешнее изменение 127.0.0.1 |
|---|
| * [[ejabberd:3#Установка в Linux|Установка в **Linux**]] | * [[ejabberd:3#Установка в Linux|Установка в **Linux**]] |
| * [[ejabberd:3#Установка в macOS|Установка в **macOS**]] | * [[ejabberd:3#Установка в macOS|Установка в **macOS**]] |
| * Установка из исходного кода - рекомендуется для опытных пользователей | * [[ejabberd:3#Установка из исходного кода|Установка из исходного кода]] - рекомендуется для опытных пользователей |
| * Установка с определенными пакетами для операционной системы - рекомендуется для системных администраторов | * [[ejabberd:3#Установка с определенными пакетами для операционной системы|Установка с определенными пакетами для операционной системы]] - рекомендуется для системных администраторов |
| * Операции после установки - например, регистрация пользователей и создание учетных записей администратора | * [[ejabberd:3#Операции после установки|Операции после установки]] - например, регистрация пользователей и создание учетных записей администратора |
| |
| ===== Быстрый старт ===== | ===== Быстрый старт ===== |
| ===== Установка в Windows ===== | ===== Установка в Windows ===== |
| {{ :ejabberd:winlogo.png?nolink&200|}} | {{ :ejabberd:winlogo.png?nolink&200|}} |
| | |
| * Перейдите на [[https://www.process-one.net/en/ejabberd/downloads/|официальную страницу загрузки **ejabberd** на сайте **ProcessOne**]]. | * Перейдите на [[https://www.process-one.net/en/ejabberd/downloads/|официальную страницу загрузки **ejabberd** на сайте **ProcessOne**]]. |
| * Загрузите «**64**-битный установщик **Windows**». | * Загрузите «**64**-битный установщик **Windows**». |
| Прежде чем начать установку **ejabberd**, убедитесь, что ваш **Mac** поддерживает приложения от определенных разработчиков. Для этого перейдите в «**Настройки Mac**», «**Безопасность и конфиденциальность**» и выберите «**Разрешить загрузку приложений из: App Store и определенных разработчиков**». Затем вы можете скачать **ejabberd** и продолжить установку: | Прежде чем начать установку **ejabberd**, убедитесь, что ваш **Mac** поддерживает приложения от определенных разработчиков. Для этого перейдите в «**Настройки Mac**», «**Безопасность и конфиденциальность**» и выберите «**Разрешить загрузку приложений из: App Store и определенных разработчиков**». Затем вы можете скачать **ejabberd** и продолжить установку: |
| |
| * Перейдите на официальную страницу загрузки ejabberd на сайте ProcessOne. | * Перейдите на [[https://www.process-one.net/en/ejabberd/downloads/|официальную страницу загрузки **ejabberd** на сайте **ProcessOne**]]. |
| * Загрузите «**Установщик Mac OS X Intel**». Если ваша система старше, чем указанные минимальные требования, найдите в **ejabberd Download Archive** подходящую версию. | * Загрузите «**Установщик Mac OS X Intel**». Если ваша система старше, чем указанные минимальные требования, найдите в **ejabberd Download Archive** подходящую версию. |
| * Дважды кликните файл **ejabberd-YY.MM-osx-installer.app.zip**, чтобы распаковать архив. | * Дважды кликните файл **ejabberd-YY.MM-osx-installer.app.zip**, чтобы распаковать архив. |
| |
| Теперь вы можете перейти на веб-панель мониторинга по адресу **[[http://localhost:5280/admin|http://localhost:5280/admin]]** и ввести имя пользователя **admin** и пароль для доступа. Без конфигурации здесь не так много всего, поэтому следующий шаг - узнать, как настроить **ejabberd**. | Теперь вы можете перейти на веб-панель мониторинга по адресу **[[http://localhost:5280/admin|http://localhost:5280/admin]]** и ввести имя пользователя **admin** и пароль для доступа. Без конфигурации здесь не так много всего, поэтому следующий шаг - узнать, как настроить **ejabberd**. |
| | |
| | ===== Установка из исходного кода ===== |
| | {{ :ejabberd:sourcelogo.png?nolink&200|}} |
| | |
| | Канонической формой распространения стабильных выпусков **ejabberd** является пакет исходного кода. Компилировать **ejabberd** из исходного кода довольно просто в ***nix** системах, если ваша система имеет все зависимости.\\ |
| | |
| | ==== Технические требования ==== |
| | |
| | Чтобы скомпилировать **ejabberd** в «**Unix-like**» операционной системе, вам необходимо: |
| | |
| | * **GNU Make** |
| | * **GCC** |
| | * **Libexpat 1.95** или выше |
| | * **Libyaml 0.1.4** или выше |
| | * **Erlang/OTP 19.1** или выше. Мы рекомендуем использовать Erlang OTP 21.2. |
| | * **OpenSSL 1.0.0** или выше, для шифрования STARTTLS, SASL и SSL. |
| | * **Zlib 1.2.3** или выше, для поддержки потокового сжатия (XEP-0138). Необязательный. |
| | * Библиотека **PAM**. Необязательно. Для сменных модулей аутентификации (**PAM**). Смотрите раздел **PAM**. |
| | * **ImageMagick** Convert. Необязательно. Для генерации капчи. Смотрите раздел **CAPTCHA**. |
| | |
| | ==== Загрузка ==== |
| | |
| | Вышедшие версии **ejabberd** доступны на [[https://www.process-one.net/en/ejabberd/downloads/|официальной странице загрузки **ProcessOne**]]. |
| | |
| | Кроме того, последний исходный код разработки может быть получен из репозитория **Git** с помощью команд: |
| | <code> |
| | git clone git://github.com/processone/ejabberd.git ejabberd |
| | cd ejabberd |
| | ./autogen.sh |
| | </code> |
| | |
| | ==== Компиляция ==== |
| | |
| | Для компиляции **ejabberd** выполните команды: |
| | <code> |
| | ./configure --enable-user=ejabberd --enable-mysql |
| | </code> |
| | |
| | Это говорит конфигуратору, как подготовить сервер для установки с запуском от пользователя по имени **ejabberd**, поэтому, пожалуйста, создайте этого пользователя или попросите использовать другого локального пользователя. Не рекомендуется запускать **ejabberd** с привилегиями **root**. |
| | <WRAP center cube info 100%> |
| | Для компиляции **ejabberd** вам потребуется доступ в Интернет, поскольку зависимости будут загружаться в зависимости от выбранных параметров. |
| | </WRAP> |
| | Сценарий конфигурации сборки допускает несколько вариантов. Чтобы получить полный список, выполните команду: |
| | <code> |
| | ./configure --help |
| | </code> |
| | |
| | ==== Опции ==== |
| | |
| | Некоторые доступные опции, которые могут вас заинтересовать в модификации: |
| | |
| | * -–Bindir = /: указать путь к исполняемым файлам пользователя (где доступны **epmd** и **iex**). |
| | * -–Prefix = /: Укажите префикс пути, куда будут копироваться файлы при запуске команды **make install**. |
| | * -–Enable-user [= USER]: разрешить этому обычному системному пользователю выполнять сценарий **ejabberdctl** (смотрите раздел ejabberdctl), читать файлы конфигурации, читать и записывать в каталог спула, читать и записывать в каталог журнала. Пользователь и группа учетной записи должны существовать на компьютере перед запуском make install. Эта учетная запись не нуждается в явном каталоге HOME, поэтому /var/lib/ejabberd/ будет использоваться по умолчанию. |
| | * -–Enable-pam: включить метод аутентификации **PAM** (смотрите раздел PAM). |
| | * -–Enable-tools: включить использование инструментов разработки. |
| | * -–Enable-mysql: включить поддержку **MySQL** (смотрите базы данных). |
| | * -–Enable-pgsql: включить поддержку **PostgreSQL** (смотрите базы данных). |
| | * -–Enable-sqlite: включить поддержку **SQLite** (смотрите базы данных). |
| | * –-Enable-riak: включить поддержку базы данных **Riak** (смотрите базы данных). |
| | * -–Enable-redis: включить поддержку **Redis** для использования во внешнем хранилище сеансов. |
| | * -–Enable-zlib: включить сжатие потока (XEP-0138) с помощью **zlib**. |
| | * -–Enable-lager: использовать стандартный инструмент регистрации **Erlang** вместо стандартного средства регистрации ошибок. |
| | * –-Enable-debug: компилировать с включенной + **debug_info**. |
| | * –-Enable-elixir: Сборка **ejabberd** с поддержкой расширения **Elixir**. |
| | * –-Enable-all: включить все предыдущие опции. |
| | * --enable-latest-deps: заставляет rebar использовать последние версии зависимостей, разработанные вместе с **ejabberd**, вместо версии, указанной в **rebar.config**. Следует использовать только при разработке **ejabberd**. |
| | |
| | Вот другие доступные варианты, которые являются экспериментальными и не рекомендуются: |
| | |
| | * –-Enable-hipe: компилировать изначально с **HiPE** (не рекомендуется). |
| | |
| | ==== Установка ==== |
| | |
| | Чтобы установить **ejabberd** в каталогах назначения, выполните команду <wrap hi>make install</wrap>.\\ |
| | Обратите внимание, что вам, вероятно, нужны административные привилегии в системе для установки **ejabberd**.\\ |
| | |
| | По умолчанию создаются файлы и каталоги: |
| | * /etc/ejabberd/: каталог конфигурации: |
| | * ejabberd.yml: файл конфигурации **ejabberd** |
| | * ejabberdctl.cfg: файл конфигурации сценария администрирования |
| | * inetrc: сетевой файл конфигурации **DNS** для **Erlang** |
| | |
| | * /lib/ejabberd/: |
| | * ebin/: двоичные файлы **Erlang** (***.beam**) |
| | * include/: файлы заголовков **Erlang** (***.hrl**) |
| | * priv/: дополнительные файлы требуются во время выполнения |
| | * bin/: исполняемые файлы |
| | * lib/: бинарные системные библиотеки (***.so**) |
| | * msgs/: файлы перевода (***.msgs**) |
| | |
| | * /sbin/ejabberdctl: сценарий администрирования (смотрите раздел ejabberdctl) |
| | |
| | * /share/doc/ejabberd/: документация **ejabberd** |
| | |
| | * /var/lib/ejabberd/: каталог Spool: |
| | * .erlang.cookie: файл **cookie Erlang** (смотрите раздел cookie) |
| | * acl.DCD, ...: файлы буфера базы данных **Mnesia** (*.DCD, *.DCL, *.DAT) |
| | |
| | * /var/log/ejabberd/: каталог журналов (смотрите раздел logfiles): |
| | * ejabberd.log: журнал обслуживания **ejabberd** |
| | * erlang.log: системный журнал **Erlang**/**OTP** |
| | |
| | ==== Особые заметки ==== |
| | === BSD === |
| | Команда для компиляции ejabberd в системах **BSD** - это <wrap hi>gmake</wrap>. |
| | |
| | === Macos === |
| | При компиляции из исходников в **macOS** вы должны настроить **ejabberd** на использование пользовательских **OpenSSL**, **Yaml**, **iconv**. Наилучший подход - использовать **Homebrew** для установки всех зависимостей, а затем экспортировать ваш собственный путь, чтобы настроить. |
| | <code> |
| | brew install git erlang elixir openssl expat libyaml libiconv libgd sqlite rebar rebar3 automake autoconf |
| | export LDFLAGS="-L/usr/local/opt/openssl/lib -L/usr/local/lib -L/usr/local/opt/expat/lib" |
| | export CFLAGS="-I/usr/local/opt/openssl/include/ -I/usr/local/include -I/usr/local/opt/expat/include" |
| | export CPPFLAGS="-I/usr/local/opt/openssl/include/ -I/usr/local/include -I/usr/local/opt/expat/include" |
| | ./configure --enable-sqlite |
| | make |
| | </code> |
| | |
| | ===== Установка с определенными пакетами для операционной системы ===== |
| | |
| | Некоторые операционные системы предоставляют специальный пакет **ejabberd**, адаптированный к архитектуре системы и библиотекам. Обычно он также проверяет зависимости и выполняет основные задачи по настройке, такие как создание начальной учетной записи администратора. Некоторые примеры - **Debian** и **Gentoo**. Обратитесь к ресурсам, предоставляемым вашей операционной системой для получения дополнительной информации.\\ |
| | |
| | Теперь **[[https://www.process-one.net/|ProcessOne]]** предоставляет **ejabberd** в **RPM** и **DEB** (в одном пакете), начиная с версии **15.06 ejabberd**. Это самодостаточные пакеты, также содержащие минимальный дистрибутив **Erlang**. Это гарантирует, что это не мешает вашей существующей версии **Erlang**. И также хороший способ убедиться, что **ejabberd** будет работать с последней версией **Erlang**. Вы можете скачать пакеты с [[https://www.process-one.net/en/ejabberd/downloads/|официальной страницы загрузки ejabberd]].\\ |
| | |
| | ===== Запуск ejabberd ===== |
| | |
| | **ejabberd** может быть запущен вручную в любое время или автоматически операционной системой во время загрузки системы.\\ |
| | Чтобы запустить и остановить **ejabberd** вручную, используйте ярлыки на рабочем столе, созданные установщиком. Если на машине нет графической системы, используйте сценарии **'start'** и **'stop'** в каталоге **'bin'**, где установлен **ejabberd**.\\ |
| | Вы также можете использовать сценарий администрирования командной строки **ejabberdctl** для запуска и остановки **ejabberd**. Если вы указали опцию конфигурации --enable-user=USER (смотрите раздел Компиляция), вы можете выполнить **ejabberdctl** с этой системной учетной записью или пользователем **root**.\\ |
| | |
| | Примеры использования: |
| | <code> |
| | prompt> ejabberdctl start |
| | </code> |
| | <code> |
| | prompt> ejabberdctl status |
| | The node ejabberd@localhost is started with status: started |
| | ejabberd is running in that node |
| | </code> |
| | <code> |
| | prompt> ejabberdctl stop |
| | </code> |
| | |
| | Если **ejabberd** не запускается правильно и генерируется файл аварийного дампа, значит возникла серьезная проблема. Вы можете попробовать запустить **ejabberd** с помощью скрипта **bin/live.bat** в **Windows** или с помощью команды **bin/ejabberdctl live** в других операционных системах. Таким образом, вы увидите сообщение об ошибке, предоставленное **Erlang** и сможете определить, в чем именно проблема.\\ |
| | |
| | Сценарий администрирования **ejabberdctl** включен в каталог **bin**. Пожалуйста, обратитесь к разделу ejabberdctl для получения подробной информации о **ejabberdctl** и настраиваемых параметрах для точной настройки системы времени исполнения **Erlang**. |
| | |
| | ==== Автостарт в Linux ==== |
| | |
| | В системе ***nix** создайте системного пользователя с именем **'ejabberd'**, предоставьте ему доступ на запись в базу данных **database/** и **logs/** и установите его как **home**. Если вы хотите, чтобы **ejabberd** запускался как демон во время загрузки с этим пользователем, скопируйте **ejabberd.init** из каталога **'bin'** в нечто вроде **/etc/init.d/ejabberd** или (в дистрибутиве **systemd**) скопируйте **ejabberd.service** в **/etc/systemd/system/**, запустите от имени **root** **systemctl daemon-reload**, а с помощью **systemctl** включите **ejabberd.service**. Затем вы можете вызвать **/etc/inid.d/ejabberd start** или (с помощью **systemd**) **systemctl** запустить **ejabberd** от имени пользователя **root**, чтобы запустить сервер.\\ |
| | |
| | Когда запускается **ejabberd**, процессы, которые запускаются в системе - **beam** или **beam.smp**, а также **epmd**. Для получения дополнительной информации о **epmd** обратитесь к разделу, касающемуся epmd. |
| | |
| | ==== Автостарт в Windows ==== |
| | |
| | Установщик **Windows** также добавляет **ejabberd** в качестве системной службы и ярлык консоли отладки для опытных администраторов. Если вы хотите, чтобы **ejabberd** запускался автоматически во время загрузки системы, перейдите в настройки служб **Windows** и установите автоматический запуск **ejabberd**. Обратите внимание, что служба **Windows** - это функция, которая все еще находится в разработке, и, например, она не читает файл **ejabberdctl.cfg**.\\ |
| | |
| | В **Microsoft Windows** процессы **Erlang** для **ejabberd** называются **erl.exe** и **epmd.exe**. |
| | |
| | ===== Операции после установки ===== |
| | |
| | ==== Аккаунт администратора ==== |
| | |
| | Бинарный установщик **ejabberd** запрашивает учетную запись администратора, поэтому в этом случае вы, вероятно, можете пропустить этот шаг. Однако, если вы используете другой способ установки **ejabberd**, вам может потребоваться создать учетную запись администратора **XMPP**. Вам нужна учетная запись **XMPP** с правами администратора для входа в **ejabberd WebAdmin**. \\ |
| | Вот шаги для его создания: |
| | |
| | * Зарегистрируйте учетную запись **XMPP** на своем сервере **ejabberd**, например, **admin1@example.org**. \\ |
| | Существует два способа регистрации учетной записи **XMPP**: |
| | * Используя **ejabberdctl** (смотрите раздел ejabberdctl): |
| | <code> |
| | ejabberdctl register admin1 example.org password |
| | </code> |
| | * Используя XMPP-клиент и In-Band регистрацию (смотрите раздел mod_register). |
| | * Отредактируйте файл конфигурации ejabberd, чтобы предоставить права администратора созданной вами учетной записи XMPP: |
| | <code> |
| | acl: |
| | admin: |
| | user: |
| | - "admin1": "example.org" |
| | access: |
| | configure: |
| | admin: allow |
| | </code> |
| | Вы можете предоставить административные привилегии многим учетным записям **XMPP**, а также учетным записям с других серверов **XMPP**. |
| | * Перезапустите ejabberd, чтобы загрузить новую конфигурацию. |
| | * Откройте веб-админку (обычно это [[http://localhost:5280/admin/|http://localhost:5280/admin/]]) в вашем любимом браузере. Убедитесь, что в качестве имени пользователя введен полный JID (в этом примере: admin1@example.org). Причина, по которой вам также необходимо ввести домен, связана с поддержкой виртуального хостинга **ejabberd**. Вы можете управлять несколькими доменами **XMPP** в одном экземпляре сервера. |
| | |
| | ==== Backend баз данных ==== |
| | |
| | По умолчанию **ejabberd** использует собственную базу данных для хранения данных времени выполнения **Mnesia**. Во многих случаях вам может понадобиться разрешить **ejabberd** использовать внешнюю базу данных **SQL**. Поддерживаемые **SQL**-серверы: **MySQL**, **PostgreSQL**, **Sqlite**, **MSSQL**.\\ |
| | |
| | При использовании внешней базы данных **ejabberd** не создает схемы и таблицы самостоятельно. Вы должны создать схему перед запуском ejabberd. Если вы устанавливаете **ejabberd** из исходников, вы найдете скрипт **sql** для своего бэкэнда в каталоге установки. По умолчанию: **/usr/local/lib/ejabberd/priv/sql**. При установке **ejabberd** из установщика **Process-One** сценарии инициализации находятся по пути установки **ejabberd** в **<base>/lib/ejabberd*/priv/sql**.\\ |
| | |
| | Смотрите схемы базы данных SQL **ejabberd** для получения подробной информации о схемах базы данных. Смотрите пошаговые руководства по настройке баз данных для получения подробных инструкций по их настройке. |