在Ubuntu 18.04上安装EJABBERD XMPP服务器16.04

时间:2020-02-23 14:44:37  来源:igfitidea点击:

EJABBERD是一个强大而流行的开源XMPP服务器。
EJABBERD已由具有容错,简单配置和可扩展性的底开设计。
它能够利用多个集群机的资源,并且在需要更多的容量时可以轻松缩放 - 通过添加更多VM。

EJABBERD使验证用户使用外部或者内部数据库(MNESIA,SQL),LDAP或者外部脚本

为了存储持久数据,EJABBERD使用MNESIA(分布式内部Erlang数据库),但我们可以选择其他存储:

SQL数据库如MySQL或者Postgresqlnosql数据库,如RIAK(也写在Erlang)

EJABBERD XMPP服务器的功能

ejabberd具有模块化架构,可以实现高度的可定制性,并且可以轻松访问所需的功能,包括:存储和转发(脱机消息)联系人列表(名单)和存在于One Messicuctuser Presence Extense:个人事件协议(PEP )与vcardsgroup聊天的执行指示器配置文件:muc(多用户聊天)消息传递使用消息存档管理(mam)消息传递收据(aka xep-184)隐私设置,通过隐私列表和简单的阻塞扩展程序级活动媒体和完整命令行管理特征在于Web支持,拥有BOSH和Web SocketsStream管理,用于移动移动(AKA XEP-0198)的信息可靠性和更多。

在Ubuntu 18.04上安装EJABBERD XMPP服务器16.04

我们将从二进制安装程序安装ejabberd,该二进制安装程序提供全功能的ejabberd服务器,无需任何额外的依赖项。

第1步:下载ejabberd安装程序。

转到ejabberd官方下载页面。
注意最新版本的软件。

将最新版本导出到变量:

export VER="20.04"

使用WGet下载Debian软件包。

wget https://static.process-one.net/ejabberd/downloads/${VER}/ejabberd_${VER}-0_amd64.deb

第2步:在Ubuntu 18.04上安装ejabberd

使用下载下载的包 dpkg命令:

sudo apt install ./ejabberd_${VER}-0_amd64.deb

这将放置ejabberd init脚本 /etc/init.d/ejabberd名为"ejabberd"的系统用户是createDejabberd应用程序目录 /opt/ejabberd
这是ejabberd用户的一个家。
ejabberd启动时,系统中启动的进程是 beam或者 beam.smp,并且 epmd

第3步:启动EJABBERD服务

由于Ubuntu使用Systemd Init系统,因此我们需要复制 ejabberd.service/etc/systemd/system目录。

sudo cp $(sudo find/-name ejabberd.service) /etc/systemd/system

重新加载系统:

sudo systemctl daemon-reload

启动服务并启用它以启动启动:

sudo systemctl enable --now ejabberd

运行检查状态:

$systemctl status ejabberd.service
● ejabberd.service - XMPP Server
     Loaded: loaded (/etc/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2017-05-23 10:41:36 CEST; 15s ago
    Process: 6545 ExecStart=/bin/sh -c /opt/ejabberd-20.04/bin/ejabberdctl start && /opt/ejabberd-20.04/bin/ejabberdctl started (code=exited, status=0
      Tasks: 23 (limit: 4567)
     Memory: 44.9M
     CGroup: /system.slice/ejabberd.service
             ├─6592 /opt/ejabberd-20.04/bin/epmd -daemon
             ├─6593 /opt/ejabberd-20.04/bin/beam.smp -K true -P 250000 -- -root /opt/ejabberd-20.04 -progname /opt/ejabberd-20.04/bin/erl -- -home /opt>
             ├─6603 erl_child_setup 65536
             └─6632 /opt/ejabberd-20.04/lib/os_mon-2.4.7/priv/bin/memsup
Jan 23 10:41:34 ubuntu systemd[1]: Starting XMPP Server...
Jan 23 10:41:36 ubuntu systemd[1]: Started XMPP Server.

第4步:创建EJABBERD XMPP管理员帐户。

我们需要一个XMPP帐户并授予他的管理权限以进入EJABBERD Web管理员。
在EJABBERD服务器上注册XMPP帐户。

将ejabberdctl命令位置添加到路径

找到ejabberdctl。

$sudo find/-name ejabberdctl
/opt/ejabberd-20.04/bin/ejabberdctl

添加到路径 .bashrc文件。

$vim ~/.bashrc

设置如下 - 但替换/opt/ejabberd-20.04/bin/使用从查找命令中找到的版本路径:

PATH=$PATH:/opt/ejabberd-20.04/bin/

来源要反映的新路径的文件:

source ~/.bashrc

用户创建的语法。

ejabberdctl register <username> <server_hostname>  <user-password>

在我的情况下,我将运行以下命令:

$ejabberdctl register theitroad ejabberd.example.com StrongPassword
User Hyman@theitroad successfully registered

编辑EJABBERD配置文件,为我们创建的XMPP帐户提供管理权限。

$sudo vim /opt/ejabberd/conf/ejabberd.yml
acl:
  admin:
    user:
      - "Hyman@theitroad"

其中ejabberd.example.com是添加用户时使用的服务器主机名。
我们可以将管理权限授予许多XMPP帐户,也可以在其他XMPP服务器中进行帐户。

第5步:访问ejabberd web admin

Web管理员应在http://IP地址:5280/admin /。
打开我们最喜欢的浏览器的URL USIC。

登录时,请务必输入完整的JID作为用户名:

Hyman@theitroad

我们还需要输入后缀的原因是ejabberd虚拟托管支持。
我们可以在单个实例上管理多个XMPP域。