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。
然後繼續設置用戶電子郵件和管理員用戶密碼。 然後完成安裝
在登錄頁面上,輸入 admin 作為用戶名並使用您在上一步中設置的密碼。
您現在應該看到服務器管理器窗口。
而已。 下一篇文章將介紹添加用戶和實現一個簡單的通信網絡。
額外的信息
在防火牆中打開端口
如果您使用的是 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 服務器。 接下來要做的事情包括閱讀: