在CentOS 8| rhel 8上安装EJABBERD XMPP服务器
如何在CentOS 8上安装ejabberd | Rhel 8?
EJABBERD是一种用erlang编写的一个免费和开源的XMPP服务器。
EJABBERD专为可扩展性和容错而设计。
它具有一个小的资源足迹,可以在任何UNIX上运行,如操作系统 - Linux,FreeBSD,Solaris,MacOS,OpenBSD等。
ejabberd使用的默认数据存储是mnesia(分布式内部Erlang数据库),但我们可以使用SQL或者NoSQL数据库服务器。
EJABBERD XMPP服务器的功能
EJABBERD具有模块化架构,可实现高度可定义性和轻松访问所需功能,包括:
存储和转发(脱机消息)联系人列表(名单)和存在于One MessicingUser Presence Extense:Personal Event协议(PEP)和执行带有vCardsGroup聊天的指示器配置文件:MUC(多用户聊天)消息传递归档使用邮件存档管理(MAM)消息传递收据(AKA XEP-184)隐私设置,通过隐私列表和简单的阻塞扩展程序级活动媒体和完整的命令行管理程序功能Web支持,带有BOSH和Web SocketsStream管理,用于移动到Mobile的消息可靠性(AKA XEP-0198 )还有更多。
在CentOS 8| rhel 8上安装EJABBERD XMPP服务器
ejabberd包装为RPM文件,可以轻松下载并安装 rpm
包管理器。
如果我们有一个从源代码编译,请执行此操作。
第1步:更新系统
像往常一样,我们需要在更新系统上工作:
sudo yum -y update
第2步:下载并安装EJABBERD RPM包
更新后,下载ejabberd rpm包。
我们需要在执行实际下载之前检查最新版本。
sudo yum -y install wget wget https://static.process-one.net/ejabberd/downloads/20.04/ejabberd-20.04-0.x86_64.rpm
通过运行命令安装下载的RPM包:
sudo yum localinstall ejabberd-20.04-0.x86_64.rpm
同意安装提示。
Dependencies resolved. ===================================================================================================================================================================================================== Package Architecture Version Repository Size ===================================================================================================================================================================================================== Installing: ejabberd x86_64 20.04-0 @commandline 18 M Transaction Summary ===================================================================================================================================================================================================== Install 1 Package Total size: 18 M Installed size: 29 M Is this ok [y/N]: y
这将放置ejabberd init脚本 /etc/init.d/ejabberd
名为"ejabberd"的系统用户是createDejabberd应用程序目录 /opt/ejabberd
。
这是ejabberd用户的一个家。
ejabberd启动时,系统中启动的进程是 beam
或者 beam.smp
,并且 epmd
。
第3步:在CentOS 8上启动EJABBERD服务
现在我们已经完成了安装,我们需要启动服务并启用它在重新启动服务器时自动启动。
定位 ejabberd.service
并将其复制到 /etc/systemd/system
sudo yum -y install mlocate sudo updatedb sudo cp $(locate ejabberd.service) /etc/systemd/system
然后重新加载系统:
sudo systemctl daemon-reload
检测到新的EJABBERD服务后,启动它:
sudo systemctl enable --now ejabberd
我们可以确认该服务处于运行状态。
$systemctl status ejabberd ● ejabberd.service - XMPP Server Loaded: loaded (/etc/systemd/system/ejabberd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2017-07-20 00:54:48 EAT; 4s ago Process: 28813 ExecStart=/bin/sh -c /opt/ejabberd-20.04/bin/ejabberdctl start && /opt/ejabberd-20.04/bin/ejabberdctl started (code=exited, status=0/SUCCESS) Tasks: 23 (limit: 4991) Memory: 67.6M CGroup: /system.slice/ejabberd.service ├─28842 /opt/ejabberd-20.04/bin/epmd -daemon ├─28843 /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/ejabberd -- -sname Hyman@theitroad -smp en> ├─28853 erl_child_setup 65536 └─28882 /opt/ejabberd-20.04/lib/os_mon-2.4.7/priv/bin/memsup May 20 00:54:46 localhost.localdomain systemd[1]: Starting XMPP Server... May 20 00:54:48 localhost.localdomain systemd[1]: Started XMPP Server.
第4步:创建EJABBERD XMPP管理员帐户。
我们需要一个管理XMPP帐户来访问Web Admin仪表板。
将工作目录更改为 cd /opt/ejabberd-${VER}/bin
cd /opt/ejabberd-20.04/bin
添加管理员帐户:
在变量中保存用户名和密码。
username="myadmin" password="mystrongPassword"
创建管理员用户。
$sudo ./ejabberdctl register ${username} localhost ${password} User Hyman@theitroad successfully registered
我们可能需要更换 localhost
使用实际服务器主机名。
其他用户帐户应以类似的方式添加。
# ./ejabberdctl register testuser localhost testuserpassword
编辑ejabberd配置文件,为我们创建的XMPP帐户提供管理权限 /opt/ejabberd/conf/ejabberd.yml
$sudo vi /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: - "Hyman@theitroad" - "Hyman@theitroad"
重新开始 ejabberd
服务。
sudo systemctl restart ejabberd
第5步:配置防火墙并访问UI
允许防火墙上的ejabberd ui端口。
sudo firewall-cmd --add-port=5280/tcp --permanent sudo firewall-cmd --reload
Web管理员应在http://IP地址:5280/admin /。