CentOS 7/RHEL 7上安装和配置Ejabberd XMPP服务器
在本文中,我们将介绍在CentOS 7/RHEL 7 Linux系统上安装和配置Ejabberd XMPP服务器的过程。Ejabberd是一款功能强大、开源的XMPP服务器,它用Erlang编程语言编写,适用于开发语音、即时消息、视频聊天、在线游戏等实时通信应用程序以及更多用例,当前Ejabberd使用Mnesia作为其默认存储引擎,但也可以使用SQL或NoSQL数据库。
在CentOS 7/RHEL 7上安装Ejabberd XMPP服务器的详细步骤
最简单的安装方法是使用.rpm软件包,用户可以按照以下步骤在CentOS 7/RHEL 7系统上安装和配置Ejabberd XMPP服务器。
步骤1:更新系统
确保系统已经更新到最新:
sudo yum -y update
建议在更新后重新启动系统,因为可能会有内核更新:
sudo reboot
步骤2:安装Ejabberd RPM软件包
查看Ejabberd最新发布页面,地址在https://www.process-one.net/en/ejabberd/downloads/,下载RPM软件包以在基于RHEL的系统上运行:
在更新本文时,新版本是23.01。让我们使用wget下载它:
EJ_VERSION=23.01
sudo yum -y install wget
wget https://static.process-one.net/ejabberd/downloads/${EJ_VERSION}/ejabberd-${EJ_VERSION}-1.x86_64.rpm
在系统上本地下载软件包后,使用yum软件包管理器进行安装:
sudo yum localinstall ejabberd-${EJ_VERSION}*.x86_64.rpm
会安装ejabberd x86_64 23.01-1 /ejabberd-23.01-1.x86_64 25M软件包,请在出现确认安装的时候,请按y键继续。
这将把ejabberd init脚本放在/etc/init.d/ejabberd下。
创建了一个名为“ejabberd”的系统用户
ejabord应用程序目录为/opt/ejabberd。
当ejabberd启动时,系统中启动的进程是beam或beam.smp,还有epmd。
步骤3:启动Ejabberd服务
接下来,我们在系统上启动并启用ejabberd服务:
sudo systemctl enable --now ejabberd
确认服务是否正在运行:
$ systemctl status ejabberd
ejabberd.service - XMPP Server
Loaded: loaded (/etc/systemd/system/ejabberd.service; enabled; vendor preset: disabled)
在CentOS 7/RHEL 7上配置Ejabberd XMPP服务器的详细步骤
步骤1:添加ejabberd管理员用户帐户
导航到ejabberd bin目录:
cd /opt/ejabberd-*/bin
您需要一个管理员XMPP帐户才能访问Web管理面板:
username="admin"
password="StrongAdminPassword"
使用以下命令创建管理员用户:
$ sudo ./ejabberdctl register ${username} localhost ${password}
User admin@localhost successfully registered
建议将localhost替换为实际的服务器主机名。对于hostname,您还可以使用命令$(hostname -f)值:
# If it fails try FQDN
$ sudo ./ejabberdctl register ${username} $(hostname -f) ${password}
使用类似的方法将其他用户帐户添加到Ejabberd:
sudo ./ejabberdctl register testuser localhost testuserpassword
或:
sudo ./ejabberdctl register testuser $(hostname -f) 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:
- "admin@localhost"
- "myadmin@localhost"
建议需要将localhost替换为FQDN。完成后,重新启动ejabberd服务:
sudo systemctl restart ejabberd
步骤2:配置防火墙和Access UI
如果Firewalld处于活动状态,请在防火墙上启用ejabberd UI端口:
sudo firewall-cmd --add-port=5280/tcp --permanent
sudo firewall-cmd --reload
到这里,可以使用http://ip-address:5280/admin/地址格式访问Web管理员了,请在浏览器中打开URL,使用带域名的完整用户名登录,例如username@yourfqdn:
至此,配置Ejabberd XMPP服务器全部完成。用户可以随时体验这款功能强大、灵活的XMPP服务器,现在就可以用于各种实时通信应用。