關於如何在 Centos 7.x 上安裝 Openfire XMPP 聊天服務器的完整指南

Openfire 是一個使用 XMPP/Jabber 協議的強大的即時消息 (IM) 和聊天服務器。 Openfire 是一個非常流行的 Messaging (Chat) and Presence Server,它是使用 XMPP 的一系列產品的基礎,並且據說是可擴展的,這意味著它的功能可以增強,尤其是使用 Asterisk IM 等插件有還有很多這樣的插件。

為了Ubuntu18.04 / Ubuntu 16.04,請查看:如何在 Ubuntu 18.04 / Ubuntu 16.04 上安裝 Openfire XMPP 聊天服務器

Openfire 也可以定義為需要客戶端使用的實時協作(RTC)服務器,但支持 XMPP 協議的客戶端數量眾多。 由同一開發人員為 Openfire 設計的最受歡迎的產品是 Spark。

XMPP(可擴展消息和狀態協議)是一種廣泛使用的即時消息開放協議。 它是一種基於 XML 的實時通信協議(包括聊天)。
Openfire 提供了一些很酷的功能,例如:

  • MySQL、Oracle、PostgreSQL 和嵌入式數據庫支持用戶詳細信息和消息存儲。
  • LDAP 集成支持
  • 支持 TLS 和 SSL 以確保安全
  • Web GUI 配置管理器
  • Spark IM 客戶端集成
  • 許多插件來擴展其功能
  • 集群以避免單點故障
  • 與其他外部 IM 服務器集成

Openfire 的安裝非常簡單,我們將在本文檔中進行介紹。 由於我們正在使用 CentOS 服務器,您需要安裝和更新/升級 CentOS 服務器。 如果您是全新安裝的 CentOS,在全新安裝 CentOS 7 最低版後執行的第一個任務可能會有所幫助。

您可以從 https://centos.org/download/ 獲得最新的穩定 CentOS 發行版(如果尚未完成)。
請按照以下步驟進行安裝。

第一步:更新升級系統

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

第 2 步:下載並安裝所有必需的軟件包

您需要安裝以下軟件包

  • 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(可選)。

[pastacode lang=”bash” message=”” highlight=”” provider=”manual” manual=”%C2%A0%5Broot%40openfire-cloud%20~%5D%23%20mkdir%20-p%20%2Fusr %2Fsrc%2Fopenfire%0A%C2%A0%5Broot%40openfire-cloud%20~%5D%23%20cd%20%2Fusr%2Fsrc%2Fopenfire%0A%C2%A0%5Broot%40openfire-cloud%20~%5D %23%20curl%20-LO%20-H%20%22Cookie%3A%20oraclelicense%3Daccept-securebackup-cookie%22%20%22http%3A%2F%2Fdownload.oracle.com%2Fotn-pub%2Fjava%2Fjdk %2F8u71-b15%2Fjdk-8u71-linux-x64.rpm%22%0A%C2%A0%5Broot%40openfire-cloud%20~%5D%23%20rpm%20-Uvh%20jdk-8u71-linux-x64。轉”/]

將以下行添加到 /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
                    

安裝和配置 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密碼並保存更改。

[pastacode lang=”bash” message=”” highlight=”” provider=”manual” manual=”%C2%A0%5Broot%40openfire-cloud%20~%5D%23%20mysql%20-u%20root%20 -p%0AMariaDB%3E%20create%20database%20openfire%3B%0AMariaDB%3E%20GRANT%20ALL%20PRIVILEGES%20ON%20openfire.*%20TO%20openfire%40localhost%20IDENTIFIED%20BY%20'openfire'%3B%0AMariaDB% 3E%20flush%20privileges%3B%20%0AMariaDB%3E%20use%20openfire%3B%0AMariaDB%3E%20source%20%2Fopt%2Fopenfire%2Fresources%2Fdatabase%2Fopenfire_mysql.sql%3B%0AMariaDB%3E%20exit%C2% A0″/]

如果您正在運行防火牆防火牆,則必須在 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
                    

您還可以使用 ip addr show 命令獲取您的 IP 地址。

                       [[email protected] ~]# ip addr show
                    

要訪問 Openfire 網站管理界面,請使用;

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

選擇默認語言,然後單擊繼續。 在服務器設置上,設置您的域並單擊繼續按鈕。

我們將使用以下配置參數。
數據庫驅動預設:MySQL
JDBC驅動類:com.mysql.jdbc.Driver
數據庫網址:jdbc:mysql://127.0.0.1/openfire? useUnicode = true & characterEncoding = UTF-8 & characterSetResults = UTF-8
用戶名:開火
密碼:開火

單擊繼續並使用配置文件設置中的默認選項; 如果您有 LDAP 服務器並且用戶正在使用網絡中的系統,您可以選擇 LDAP。

Screenshot 2
然後繼續設置用戶電子郵件和管理員用戶密碼。 然後完成安裝 Screenshot 4

在登錄頁面上,輸入 admin 作為用戶名並使用您在上一步中設置的密碼。

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

您現在應該看到服務器管理器窗口。


而已。 下一篇文章將介紹添加用戶和實現一個簡單的通信網絡。

額外的信息

在防火牆中打開端口
如果您使用的是 iptables,您可能需要打開 openfire 和 Openfire 客戶端連接端口使用的端口。 這些端口分別是 udp 和 tcp 的 5222、7777、9090、9091。 將 eth1 替換為您的網絡接口卡。

[pastacode lang=”bash” message=”” highlight=”” provider=”manual” manual=”iptables%20-A%20INPUT%20-p%20tcp%20-i%20eth1%20%E2%80%93dport %205222%20-j%20ACCEPT%0Aiptables%20-A%20INPUT%20-p%20udp%20-i%20eth1%20%E2%80%93dport%205222%20-j%20ACCEPT%0Aiptables%20-A %20INPUT%20-p%20tcp%20-i%20eth1%20%E2%80%93dport%207777%20-j%20ACCEPT%0Aiptables%20-A%20INPUT%20-p%20udp%20-i%20eth1 %20%E2%80%93dport%207777%20-j%20ACCEPT%0Aiptables%20-A%20INPUT%20-p%20tcp%20-i%20eth1%20%E2%80%93dport%209090%20-j %20ACCEPT%0Aiptables%20-A%20INPUT%20-p%20udp%20-i%20eth1%20%E2%80%93dport%209090%20-j%20ACCEPT%0Aiptables%20-A%20INPUT%20-p %20tcp%20-i%20eth1%20%E2%80%93dport%209091%20-j%20ACCEPT%0Aiptables%20-A%20INPUT%20-p%20udp%20-i%20eth1%20%E2%80 %93dport%209091%20-j%20ACCEPT”/]

現在,重新加載 iptables 以影響更改。

                      # iptables-restore < /etc/sysconfig/iptables
                    

如果您使用的是 firewalld,這裡是要運行的命令的完整列表。

[pastacode lang=”bash” message=”” highlight=”” provider=”manual” manual=”firewall-cmd%20–zone%3Dpublic%20–add-port%3D9090%2Fudp%20–permanent%C2%A0 %0Afirewall-cmd%20–zone%3Dpublic%20–add-port%3D9090%2Ftcp%20–permanent%0Afirewall-cmd%20–zone%3Dpublic%20–add-port%3D5222%2Fudp%20–permanent%0Afirewall -cmd%20–zone%3Dpublic%20–add-port%3D5222%2Ftcp%20–permanent%0Afirewall-cmd%20–zone%3Dpublic%20–add-port%3D9091%2Fudp%20–permanent%0Afirewall-cmd %20–zone%3Dpublic%20–add-port%3D9091%2Ftcp%20–permanent%0Afirewall-cmd%20–zone%3Dpublic%20–add-port%3D7777%2Fudp%20–permanent%0Afirewall-cmd%20 –zone%3Dpublic%20–add-port%3D7777%2Ftcp%20–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 轉發:

[pastacode lang=”bash” message=”” highlight=”” provider=”manual” manual=”%5Broot%40openfire-cloud%5D~%23%20echo%20%22net.ipv4.ip_forward%3D1%22%20 %3E%3E%20%2Fetc%2Fsysctl.conf%20%0A%5Broot%40openfire-cloud%5D~%23%20sysctl%20-p%C2%A0%C2%A0%C2%A0%C2%A0% C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2% A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0% C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%0Anet.ipv4.ip_forward%20% 3D%201%0A%5Broot%40openfire-cloud%5D~%23″/]

而已。 您現在應該有一個工作的 Openfire XMPP 服務器。 接下來要做的事情包括閱讀:

配置 Openfire XMPP 用戶和 Asterisk SIP 用戶之間的映射

如何將 Openfire XMPP 聊天服務器與 Asterisk PBX 服務器集成

相關文章