在Ubuntu 20.04上安装OpenFire XMPP聊天服务器

时间:2020-02-23 14:39:18  来源:igfitidea点击:

XMPP(可扩展消息传递和状态协议)是即时通讯的广泛采用的开放协议。
OpenFire是一个可自由的使用和强大的即时消息(IM)服务器,它使用XMPP/Jabber协议。
本文将集中在Ubuntu 20.04 Linux机器上设置OpenFire XMPP聊天服务器

以下是OpenFire提供的一些很酷的功能:LDAP Integration SupportMysql,Oracle,PostgreSQL和嵌入式数据库支持用户详细信息和按摩存储。
支持SecurityA批次插件的TLS和SSL,以扩展其函数Web GUI配置ManagersPark IM客户端集成Clustering避免单点与其他外部IM服务器一起失败

以下是在Ubuntu 20.04上安装和配置OpenFire XMPP聊天服务器的标准步骤。

第1步:更新系统

确保我们正在进行更新版本的Ubuntu Linux。

sudo apt update

升级已安装的包是可选的。

sudo apt upgrade

如果执行操作系统升级,则需要重新启动:

sudo systemctl reboot

第2步:在Ubuntu 20.04上安装OpenFire XMPP服务器

下载OpenFire最新软件包。
我们将在本文中安装的版本为4.5.2.

wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.5.2_all.deb -O openfire.deb

已下载OpenFire Debian软件包后,使用APT命令安装它:

sudo apt install ./openfire.deb

按键盘中的Y键接受安装提示。

The following additional packages will be installed:
  ca-certificates-java default-jre-headless fontconfig-config fonts-dejavu-core java-common libavahi-client3 libavahi-common-data libavahi-common3
  libcups2 libfontconfig1 libjpeg-turbo8 libjpeg8 liblcms2-2 libnspr4 libnss3 libpcsclite1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6
  libxi6 libxrender1 libxtst6 openjdk-11-jre-headless x11-common
Suggested packages:
  default-jre cups-common liblcms2-utils pcscd libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei
  | fonts-wqy-zenhei fonts-indic
The following NEW packages will be installed:
  ca-certificates-java default-jre-headless fontconfig-config fonts-dejavu-core java-common libavahi-client3 libavahi-common-data libavahi-common3
  libcups2 libfontconfig1 libjpeg-turbo8 libjpeg8 liblcms2-2 libnspr4 libnss3 libpcsclite1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6
  libxi6 libxrender1 libxtst6 openfire openjdk-11-jre-headless x11-common
0 upgraded, 28 newly installed, 0 to remove and 0 not upgraded.
Need to get 41.3 MB/80.5 MB of archives.
After this operation, 230 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

启动并启用OpenFire服务以启动系统启动。

sudo systemctl enable --now openfire

如果运行,请检查服务状态。

$systemctl status openfire
● openfire.service - LSB: Start/stop openfire jabber server
     Loaded: loaded (/etc/init.d/openfire; generated)
     Active: active (running) since Sat 2017-05-23 17:10:43 CEST; 2min 41s ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 32 (limit: 4567)
     Memory: 199.9M
     CGroup: /system.slice/openfire.service
             └─1800 /bin/java -server -DopenfireHome=/usr/share/openfire -Dlog4j.configurationFile=/usr/share/openfire/lib/log4j2.xml -Dopenfire.lib.di>
Jan 23 17:10:43 ubuntu systemd[1]: Starting LSB: Start/stop openfire jabber server...
Jan 23 17:10:43 ubuntu openfire[1784]: best java alternative in:
Jan 23 17:10:43 ubuntu openfire[1784]: Starting openfire: openfire.
Jan 23 17:10:43 ubuntu systemd[1]: Started LSB: Start/stop openfire jabber server.

第3步:为OpenFire XMPP服务器配置数据库支持

我们将使用MariaDB数据库来存储消息数据。
使用以下命令安装MariaDB数据库服务器。

sudo apt update
sudo apt -y install mariadb-server

为OpenFire创建数据库:

$sudo mysql -u root
CREATE DATABASE openfire;
GRANT ALL PRIVILEGES ON openfire.* TO Hyman@theitroad IDENTIFIED BY 'Hyman@theitroad!';
FLUSH PRIVILEGES;
QUIT

导入OpenFire数据库架构:

$mysql -u openfire -p'Hyman@theitroad!'
USE openfire;
source /usr/share/openfire/resources/database/openfire_mysql.sql;

通过列出数据库中的表来确认。

MariaDB [openfire]> SHOW tables;
+----------------------+
| Tables_in_openfire   |
+----------------------+
| ofExtComponentConf   |
| ofGroup              |
| ofGroupProp          |
| ofGroupUser          |
| ofID                 |
| ofMucAffiliation     |
| ofMucConversationLog |
| ofMucMember          |
| ofMucRoom            |
| ofMucRoomProp        |
| ofMucService         |
| ofMucServiceProp     |
| ofOffline            |
| ofPresence           |
| ofPrivacyList        |
| ofProperty           |
| ofPubsubAffiliation  |
| ofPubsubDefaultConf  |
| ofPubsubItem         |
| ofPubsubNode         |
| ofPubsubNodeGroups   |
| ofPubsubNodeJIDs     |
| ofPubsubSubscription |
| ofRemoteServerConf   |
| ofRoster             |
| ofRosterGroups       |
| ofSASLAuthorized     |
| ofSecurityAuditLog   |
| ofUser               |
| ofUserFlag           |
| ofUserProp           |
| ofVCard              |
| ofVersion            |
+----------------------+
33 rows in set (0.001 sec)

第4步:配置防火墙并访问OpenFire UI

如果我们有一个主动防火墙服务,请允许OpenFire端口。

for i in 9090 9091 5222 7777; do sudo ufw allow $i; done

使用IP地址或者服务器主机主机和端口9090访问服务器上的OpenFire Web界面。
在第一个提示中选择安装语言:

选择默认语言,然后单击"继续"。
在服务器设置窗口中,设置域,然后单击"继续"按钮。

有关数据库设置,请选择"标准数据库连接"。

如果我们不想使用MySQL数据库,我们可以使用嵌入式数据库。