有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

Openfire是使用XMPP / Jabber协议的功能强大的即时消息(IM)和聊天服务器.Openfire是一种非常流行的Messaging(Chat)和Presence Server,它是使用XMPP的一系列产品的基础。是可扩展的,这意味着可以增强其功能,尤其是使用Asterisk IM插件等插件时。

对于Ubuntu 18.04 / Ubuntu 16.04,请检查:如何在Ubuntu 18.04 / Ubuntu16.04上安装Openfire XMPP聊天服务器

Openfire也可以定义为需要客户端才能使用它的实时协作(RTC)服务器,但是可以使用支持XMPP协议的大量客户端。设计Openfire的同一位开发人员提供的最受欢迎的Spark是Spark。

XMPP(可扩展消息和状态协议)是一种广泛使用的用于即时消息的开放协议,它是基于XML的实时通信协议(包括聊天)。
Openfire提供了一些很酷的功能,例如:

  • MySQL,Oracle,PostgreSQL和嵌入式数据库支持用户详细信息和消息存储。
  • LDAP集成支持
  • 同时支持TLS和SSL以确保安全
  • Web GUI配置管理器
  • Spark IM客户端集成
  • 很多插件来扩展其功能
  • 聚类以避免单点故障
  • 与其他外部IM服务器集成

Openfire的安装非常简单,我们将在本文档中介绍它。由于我们使用的是CentOS服务器,因此您需要安装和更新/升级的CentOS服务器。如果您是全新安装的CentOS,那么这件事全新安装CentOS 7 Minimal后做会很有帮助。

您可以从以下网址获取最新的稳定的CentOS发行版:http://centos.org/download/(如果您还没有这样做的话)。
请按照以下步骤进行安装。

第一步:更新并升级系统

# yum -y update
# yum -y upgrade 
# yum -y install wget
# cd /tmp/

第二步:下载并安装所有必需的软件包

您需要安装以下软件包

  • MariaDB:管理数据库系统
  • JAVA JDK
  • zlib和glibc库
  • 开火

1.安装所需的缺少的库。

 [[email protected] ~]# yum -y install epel-release
 [[email protected] ~]# yum -y install glibc.i686
 [[email protected] ~]# yum -y install zlib.i686 libstdc++.i686

2.下载并安装JDK(可选)。

 [[email protected] ~]# mkdir -p /usr/src/openfire
 [[email protected] ~]# cd /usr/src/openfire
 [[email protected] ~]# curl -LO -H "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u71-b15/jdk-8u71-linux-x64.rpm"
 [[email protected] ~]# rpm -Uvh jdk-8u71-linux-x64.rpm

将以下行添加到/ etc / profile文件的末尾。

 [[email protected] ~]# vim /etc/profile

然后将以下内容添加到文件末尾。

export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

源文件/ etc / profile。

 [[email protected] ~]# source /etc/profile

您的Java环境应该已成功安装。

3.为mysql安装Java连接器

 [[email protected] ~]# yum install java libldb.i686 mysql-server mysql-connector-java

4.下载并安装Openfire
下载Openfire软件包,您可以从下载链接中获取最新版本。截至撰写本文时,最新版本为Openfire 4.2.3,我将使用wget下载它。

# wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.2.3-1.x86_64.rpm 
-O openfire-4.2.3.rpm

现在安装它:

# yum localinstall openfire-4.2.3.rpm

为Openfire配置PAM

# cp -Rp /etc/pam.d/system-auth /etc/pam.d/openfire

将运行Openfire守护程序的用户从守护程序更改为root

# vim /etc/sysconfig/openfire

启动Openfire并使其在启动时启动

# systemctl start openfire.service
# chkconfig openfire on

确认它正在运行

# systemctl status openfire

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

安装和配置MariaDB数据库

 [[email protected] ~]# yum -y install mariadb-server mariadb
 [[email protected] ~]# systemctl start mariadb
 [[email protected] ~]# systemctl enable mariadb

确认数据库正在运行

[[email protected] ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2016-03-25 10:27:39 EAT; 1h 30min ago
 Main PID: 2127 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─2127 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─2394 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql...

Mar 25 10:27:35 openfire-cloud systemd[1]: Starting MariaDB database server...
Mar 25 10:27:36 openfire-cloud mysqld_safe[2127]: 160325 10:27:36 mysqld_safe...
Mar 25 10:27:36 openfire-cloud mysqld_safe[2127]: 160325 10:27:36 mysqld_safe...
Mar 25 10:27:39 openfire-cloud systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.
[[email protected] ~]#

配置数据库

 [[email protected] ~]# mysql_secure_installation

当询问您是否要输入数据库密码时,请按Enter(如果尚未设置),然后设置root密码并保存更改。

 [[email protected] ~]# mysql -u root -p
MariaDB> create database openfire;
MariaDB> GRANT ALL PRIVILEGES ON openfire.* TO [email protected] IDENTIFIED BY 'openfire';
MariaDB> flush privileges; 
MariaDB> use openfire;
MariaDB> source /opt/openfire/resources/database/openfire_mysql.sql;
MariaDB> exit 

如果您运行的是防火墙防火墙,则必须接受TCP端口9090和9091上的允许数据包

firewall-cmd --zone=public --add-port=9090/udp --permanent
firewall-cmd --zone=public --add-port=9090/tcp --permanent 
firewall-cmd --zone=public --add-port=9091/udp --permanent
firewall-cmd --zone=public --add-port=9091/tcp --permanent

重新加载Firewalld守护程序

 [[email protected] ~]# firewall-cmd --reload

要访问GUI,您将使用服务器的IP地址和端口9090.首先,安装net-tools软件包以使用ifconfig检查openfire服务器的IP地址。

 [[email protected] ~]# yum -y install net-tools
 [[email protected] ~]# ifconfig

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

您也可以使用ip addr show命令来获取您的IP地址。

 [[email protected] ~]# ip addr show

要访问Openfire网站管理界面,请使用;

http://127.0.0.1:9090
http:"your_ip_address:9090"

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

选择默认语言,然后单击继续。在服务器设置上,设置您的域并单击继续按钮。

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

我们将使用以下配置参数。
数据库驱动程序预设:MySQL
JDBC驱动程序类:com.mysql.jdbc.Driver
数据库URL:jdbc:mysql://127.0.0.1/openfire?UseUnicode = true&characterEncoding = UTF-8&characterSetResults = UTF-8
用户名:openfire
密码:openfire

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南

单击继续,然后使用“配置文件设置”上的“默认”选项;如果您有LDAP服务器和用户正在使用网络中的系统,则可以选择LDAP。

屏幕截图2
然后继续设置用户电子邮件和管理员用户密码。屏幕截图4

在“登录”页面上,输入admin作为用户名,并使用您在上一步中设置的密码。

திரைபிடிப்பு2013-09-24 12_23_08

现在,您应该看到“服务器管理器”窗口。

有关如何在Centos 7.x上安装Openfire XMPP聊天服务器的完整指南
就是这样,下一篇文章将涉及添加用户并实现简单的通信网络。

附加信息

在防火墙中打开端口
如果您使用的是iptables,则可能需要打开openfire和Openfire客户端连接端口使用的端口,这些端口分别是5222、7777、9090、9091,均为udp和tcp。

iptables -A INPUT -p tcp -i eth1 –dport 5222 -j ACCEPT
iptables -A INPUT -p udp -i eth1 –dport 5222 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 –dport 7777 -j ACCEPT
iptables -A INPUT -p udp -i eth1 –dport 7777 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 –dport 9090 -j ACCEPT
iptables -A INPUT -p udp -i eth1 –dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 –dport 9091 -j ACCEPT
iptables -A INPUT -p udp -i eth1 –dport 9091 -j ACCEPT

现在,重新加载iptables以影响所做的更改。

# iptables-restore < /etc/sysconfig/iptables

如果您使用的是firewalld,则下面是要运行的命令的完整列表。

firewall-cmd --zone=public --add-port=9090/udp --permanent 
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=5222/udp --permanent
firewall-cmd --zone=public --add-port=5222/tcp --permanent
firewall-cmd --zone=public --add-port=9091/udp --permanent
firewall-cmd --zone=public --add-port=9091/tcp --permanent
firewall-cmd --zone=public --add-port=7777/udp --permanent
firewall-cmd --zone=public --add-port=7777/tcp --permanent

重新加载防火墙:

 [[email protected] ~]# firewall-cmd --reload

要获取我们添加到公共区域的端口列表,请运行:

[[email protected]]~# firewall-cmd --list-ports   
9090/udp 5061/udp 9091/udp 9090/tcp 5222/udp 5060/udp 7777/udp 4569/udp 5060/tcp 9091/tcp 10000-20000/udp 7777/tcp 5222/tcp 5061/tcp 5038/tcp
[[email protected]]~#

如果您有多个ipv4网络接口,请记住要激活ip转发:

[[email protected]]~# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 
[[email protected]]~# sysctl -p                                        
net.ipv4.ip_forward = 1
[[email protected]]~#

就是这样,您现在应该拥有一个可以正常运行的Openfire XMPP服务器。接下来要做的事情包括:

配置Openfire XMPP用户和Asterisk SIP用户之间的映射

如何将Openfire XMPP聊天服务器与Asterisk PBX服务器集成

Sidebar