安装 ejabberd 社区版服务的方式有多种:

安装完成后,可以转到以下步骤:


源代码

分发 ejabberd 稳定版本的典型形式是源代码包。在 *nix 系统中,只要安装全部依赖,那么通过源代码安装 ejabberd 非常简单。

必要条件

为在类 Unix 操作系统上编译 ejabberd,需要:

译者注

比如在 Ubuntu 上,可以执行:

下载

可以从 ejabberd GitHub Releases 下载 ejabberd 的发布版本。

或者,使用以下命令从 Git 存储库中检索最新的开发源代码:

编译

执行如下命令,编译 ejabberd:

在本例中,./configure 准备用名为 ejabberd 的用户运行的安装程序,因此请创建该用户,或告诉它使用其它本地用户。不推荐用 root 用户运行 ejabberd。

make 获取依赖,编译所有代码。

注意:编译 ejabberd 需要网络访问,因为将根据选择的选项,下载依赖。

./configure

构建配置脚本支持许多选项。获取完整列表:

选项细节:

make

该工具用于编译 ejabberd,以及执行其它任务:

获取完整列表及细节:

安装

安装和运行从源代码编译的 ejabberd 有多种方式:系统安装、构建生产版本,或构建开发版本。

系统安装

运行命令 make install,在目标目录中安装 ejabberd。

注意,安装 ejabberd 可能需要系统的管理权限。

被创建的文件和目录取决于提供给 ./configure 的选项,默认为:

生产版本

可以构建在单独的 tar.gz 文件中包含 ejabberd、Erlang/OTP 和所有必须的 Erlang 依赖的 OTP 版本。然后,可以将该文件拷贝到拥有相同机器架构的其它机器,无需安装任何其它东西即可运行 ejabberd。

运行如下命令,构建该版本:

如果为 ./configure 提供使用 rebar3 或 mix 的选项 --with-rebar,那么将直接生成可以拷贝的 tar.gz。

下面的示例使用 rebar3 管理编译,构建 OTP 生产版本,将结果包拷贝到临时路径,在那里启动 ejabberd:

开发版本

如果为 ./configure 提供使用 rebar3 或 mix 的选项 --with-rebar,那么可以构建 OTP 开发版本。

这被设计为在本机运行 ejabberd,用于开发、手工测试...而不在系统中安装。

该开发版本有一些自定义:使用虚拟证书文件,如果注册账号 admin@localhost,那么它有用管理权限...

下面的示例使用 Elixir 的 mix,管理编译,构建 OTP 开发版本,在那里启动 ejabberd:


下一步

启动 ejabberd

根据安装 ejabberd 的方式,可以在系统启动时由操作系统自动启动。

可以使用 ejabberdctl 命令行管理脚本启动和停止 ejabberd,检查状态和许多其它管理任务。

如果提供了配置选项 --enable-user=USER,那么可以使用该系统账号或 root 执行 ejabberdctl

使用示例:

如果 ejabberd 未正确启动,并且生成崩溃转储文件,那么存在严重的问题。可以尝试使用命令 bin/ejabberdctl live 以交互式模式启动 ejabberd,以查看 Erlang 提供的错误消息以及明确问题所在。

在 Linux 安装器和 Docker 镜像中,ejabberdctl 管理脚本被包含在 bin 目录中。

请参阅 ejabberdctl 部分,获取关于 ejabberdctl 和优化 Erlang 运行时系统的可配置选项的细节。

在 Linux 上自动启动

如果通过源代码或一些其它未设置自动启动 ejabberd 的方法编译 ejabberd,那么可以尝试此方法。

*nix 系统上,创建名为 ejabberd 的系统用户,授予其对目录 database/logs/ 的写权限,并且将其设置为 home。

如果希望在启动时,使用该用户以守护进程的方式启动 ejabberd,那么将 ejabberd.initbin 目录拷贝到 /etc/init.d/ejabberd 之类的目录。然后调用 /etc/inid.d/ejabberd start 启动服务。

或者,如果拥有 systemd 发行版:

  1. ejabberd.service 拷贝到 /etc/systemd/system/
  2. 运行 systemctl daemon-reload
  3. 运行 systemctl enable ejabberd.service
  4. 运行 systemctl start ejabberd 启动服务

启动 ejabberd 时,系统中启动的进程是 beambeam.smp,以及 epmd

管理账号

一些 ejabberd 安装方法询问第一个账号的详细信息,注册该账号,并且授予其管理权限;在这种情况下,可以跳过本部分。

在通过源代码或其它方式安装 ejabberd 后,可能希望注册第一个 XMPP 账号,并且授予其管理权限:

  1. 在 ejabberd 服务上注册 XMPP 账号。比如,如果 example.org 被配置在 ejabberd 配置文件的 hosts 部分,那么可以使用 JID admin1@example.org 注册账号。在 ejabberd 中注册 XMPP 账号的方式有两种:

  2. 编辑 ejabberd 配置文件,授予注册的 XMPP 账号管理权限:

    可以授予多个 XMPP 账号以及其它 XMPP 服务上的账号管理权限。

  3. 重启 ejabberd,加载新配置,或运行 reload_config 命令

  4. 在喜欢的浏览器中打开 Web 管理页面。确切地址取决于 ejabberd 配置,可能是 http://localhost:5280/admin/https://localhost:5443/admin/https://localhost:5280/admin/ ... 确保输入完整 JID,在本例中是 admin1@example.org。查看 Web Admin 获取详细信息

配置 ejabberd

现在已经安装及运行 ejabberd,是时候根据需要配置它了。可以遵循 Configuration 部分,也可以查看教程