在Ubuntu 20.04上安装Ejabberd XMPP服务器

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF


这是续集。

这是续集。
这是续集。

Ejabberd是一个开源XMPP服务器,旨在提高速度和效率。该工具是从头开始构建的,具有容错能力,易于配置和可扩展性。向上扩展是将虚拟机添加到群集。 Ejabberd支持使用身份验证模块,例如Mnesia,SQL,LDAP或外部脚本。本文介绍了在Ubuntu 20.04上安装Ejabberd XMPP Server所需的步骤。

埃贾伯德 失忆症 (分布式内部Erlang数据库)保留数据,但支持其他数据库系统。这个也是;

  • SQL数据库 MySQL,PostgreSQL等
  • NoSQL数据库 像Riak(也用Erlang编写)

Ejabberd XMPP服务器的主要功能

Ejabberd采用模块化设计,以确保高度的自定义并轻松访问所需的功能。

  • 存储并转发(离线消息)
  • 联系人列表和状态
  • 一对一消息传递
  • 用户状态扩展:个人事件协议(PEP)和输入指示器
  • 使用vCard的用户个人资料
  • 群组聊天:MUC(多用户聊天)
  • 带有消息存档管理(MAM)的消息存档
  • 邮件传递确认(aka XEP-184)
  • 隐私设置,隐私列表和简单的阻止扩展
  • 最后活动
  • 指标和完整的命令行管理
  • 具有BOSH和Web套接字的全功能Web支持
  • 流管理,以确保消息在移动设备上的可靠性(aka XEP-0198)。

步骤1:下载ejabberd二进制文件

ejabberd Community Server二进制文件可用于Linux和Windows。您可以使用通用安装程序脚本或特定于操作系统的二进制程序包。 .deb Debian家庭软件包和 .rpm 适用于Red Hat Linux发行版。

在本地系统Ubuntu 20.04计算机上安装ejabberd Debian软件包。

您可能需要检查 ejabberd下载页面 最新可用版本。在本文更新时,这是20.04。

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

确认软件包已下载。

$ ls -lh ejabberd_${EJ_VERSION}-0_amd64.deb
-rw-r--r-- 1 root root 18M Apr 30 10:06 ejabberd_20.04-0_amd64.deb

步骤2:在Ubuntu 20.04上安装Ejabberd XMPP Server

软件包下载后, 适当 安装它的程序包管理器。

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

验证在Ubuntu 20.04上是否成功安装了Ejabberd XMPP服务器。

.....
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'ejabberd' instead of './ejabberd_20.04-0_amd64.deb'
The following NEW packages will be installed:
  ejabberd
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/18.5 MB of archives.
After this operation, 28.1 MB of additional disk space will be used.
Get:1 /root/ejabberd_20.04-0_amd64.deb ejabberd amd64 20.04-0 [18.5 MB]
Selecting previously unselected package ejabberd.
(Reading database ... 28241 files and directories currently installed.)
Preparing to unpack .../ejabberd_20.04-0_amd64.deb ...
Unpacking ejabberd (20.04-0) ...
Setting up ejabberd (20.04-0) ...

安装程序将执行一些操作。

  • 添加 边缘鸟 系统用户进行应用程序管理
  • 为此系统用户创建主目录- / opt / ejabberd
  • 启动核心ejabberd服务
$ ls /opt/ejabberd
conf  database  logs
$ getent passwd ejabberd
ejabberd:x:998:998::/opt/ejabberd:/bin/sh

步骤3:在Ubuntu 20.04上启动ejabberd服务

安装后,您可以在Ubuntu 20.04上启动ejabberd服务。

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

重新加载systemd。

sudo systemctl daemon-reload

启动服务,并使其在启动时启动。

sudo systemctl enable --now ejabberd

确保服务已启动且没有任何错误。

$ systemctl status ejabberd
● ejabberd.service - XMPP Server
     Loaded: loaded (/etc/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-23 11:31:59 CEST; 4s ago
    Process: 1478 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: 53.1M
     CGroup: /system.slice/ejabberd.service
             ├─1526 /opt/ejabberd-20.04/bin/epmd -daemon
             ├─1528 /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>
             ├─1539 erl_child_setup 65536
             └─1567 /opt/ejabberd-20.04/lib/os_mon-2.4.7/priv/bin/memsup

May 23 11:31:56 ubuntu systemd[1]: Starting XMPP Server...
May 23 11:31:59 ubuntu systemd[1]: Started XMPP Server.

将ejabberdctl命令的位置添加到PATH中

查找ejabberdctl。

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

添加路径 .bashrc 文件。

$ vim ~/.bashrc

进行以下设置,但将/opt/ejabberd-20.04/bin/替换为在find命令中找到的版本路径。

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

获取具有新路径的文件以进行反映。

source ~/.bashrc

步骤4:将管理员用户添加到Ejabberd

您可以将用户添加到ejabberd以进行管理。

句法:

ejabberdctl register    

就我而言,我运行以下命令:

# ejabberdctl register computingforgeeks $(hostname) StrongPassword
User [email protected] successfully registered

哪里:

  • 电脑运算 要创建的用户名。
  • 强密码 与创建的用户关联的密码。

编辑ejabberd配置文件,以赋予您创建的XMPP帐户管理特权。

用户格式:

"[email protected]"

编辑 访问控制列表 添加部分和用户。

$ sudo vim /opt/ejabberd/conf/ejabberd.yml
......

acl:
  local:
    user_regexp: ""
  loopback:
    ip:
      - 127.0.0.0/8
      - ::1/128
      - ::FFFF:127.0.0.1/128
  admin:
    user:
      - "[email protected]"
      - "[email protected]"

在Ubuntu上重新启动Ejabberd服务。

sudo systemctl restart ejabberd

您可以根据需要为任意多个XMPP帐户和其他XMPP服务器帐户赋予管理员特权。

步骤5:访问ejabberd网站管理员

必须通过以下网址访问Web管理员:// server_ip_address_or_hostname:5280 / admin /。

检查端口是否绑定。

# ss -tunelp | grep 5280
tcp    LISTEN  0 5  *:5280   *:* users:(("beam.smp",pid=3124,fd=47)) uid:998 ino:66294 sk:8 v6only:0 <->

如果您有ufw防火墙,请允许端口5280。

sudo ufw allow 5280

在浏览器中打开ejabberd Web URL。输入您先前设置的用户名和密码。

您应该看到对Ejabberd Web控制台的访问。

在Ubuntu 20.04上安装Ejabberd XMPP服务器

我已经在Ubuntu 20.04上成功安装了Ejabberd XMPP服务器。

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF


这是续集。

这是续集。
这是续集。

Sidebar