Mac XMPP Openfire 伺服器配置
前言
- Openfire 是免費的、開源的、基於可拓展通訊和表示協議(XMPP)、採用 Java 程式語言開發的實時協作伺服器。Openfire 安裝和使用都非常簡單,並利用 Web 進行管理。單臺伺服器可支援上萬併發使用者。可以使用它輕易的構建高效率的即時通訊伺服器。由於是採用開放的XMPP協議,您可以使用各種支援XMPP協議的IM客戶端軟體登陸服務.
1、配置準備工作
-
1)配置伺服器準備工作
-
下載相關軟體
-
jdk-8u91-macosx-x64.dmg
-
openfire_4_1_1.dmg
-
spark_2_8_3.dmg
-
-
-
2)配置伺服器注意事項
-
提前下載好相關軟體,且安裝目錄最好安裝在全英文路徑下。如果路徑有中文名,那麼可能會出現一些莫名其妙的問題。
-
在安裝配置 Openfire 或其他 xmpp 伺服器前,需要先安裝 MySQL 資料庫。
-
-
3)示例配置環境
- macOS 10.11.6
- macOS 10.13.3
2、下載安裝 Openfire
-
在 Openfire 官網下載最新的 Mac 版本 Openfire 安裝包。
-
下載完後雙擊安裝包,點選 pkg 檔案,在安裝引導下進行傻瓜式安裝。安裝完成後,進入系統偏好設定,點選 Openfire 圖示。
-
進入 Openfire 偏好設定介面。點選 Start Openfire,讓 OpenFire 服務開始啟動(預設是啟動的),啟動完畢後,我們就可以點選 Administration 下的按鈕 Open Admin Console,進入伺服器後臺,然後會要求輸入管理員賬號密碼。
-
Openfire 服務啟動不了問題解決
-
安裝好之後,第一次是可以啟動 openfire 伺服器的,但是電腦重啟後,就再也不能啟動伺服器了,每次一點選 “Start Openfire”,然後載入一下,狀態還是 “Start Openfire” 沒變化,有時甚至還會跳出錯誤提示框,提示 “Could not start the Openfire server”。
-
解決方案如下:
-
1)首先需要確認是否已經安裝了 Java 的執行環境,以及 JAVA jdk 是否與當前 macOS 系統版本,Openfire 版本成對應,如果不是,就請先安裝相匹配對應的軟體。
- 在終端中輸入
java -version
- 在終端中輸入
-
2)如果軟體,環境對應的,最終的解決辦法是
-
1> 開啟終端,輸入以下命令:
# 獲取 Openfire 目錄的訪問許可權 $ sudo chmod -R 777 /usr/local/openfire/bin # 以超級管理員的許可權執行指令碼 $ sudo su # 開啟 openfire 路徑 cd /usr/local/openfire/bin # 設定 Java 的環境變數 export JAVA_HOME=`/usr/libexec/java_home` # 輸出檢驗環境變數的值 echo $JAVA_HOME
-
輸入上面的命令後回車,就會出現後面的這些語句
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
-
-
2> 接著在終端,輸入以下命令:
cd /usr/local/openfire/bin # 執行 Openfire shell 指令碼 ./openfire.sh
-
輸入上面的命令後回車,就會出現後面的這些語句
Openfire 4.1.2 [2016-2-21 2:47:51] 管理平臺開始監聽: http://qianchia-macbookair.local:9090 https://qianchia-macbookair.local:9091 Successfully loaded plugin 'admin'.
-
-
3> 執行完這些命令之後,伺服器就可以啟動了,每次開機後,都啟動不了的話,都試下這個方法。
-
-
-
3、配置 Openfire 伺服器
- 在 Openfire 偏好設定介面中,點選 Open Admin Console,進入 web 配置頁面,開始配置 Openfire 伺服器。
3.1 選擇語言
-
簡體中文
3.2 伺服器設定
-
域:如果只是本地機器上登入,可以設定為本地的域 127.0.0.1。需要遠端登入的話,設定為相應的 IP 地址或域名即可。此處設定為 Mac 的機器名。
-
Server Host Name (FQDN):伺服器名,不能為 IP 地址。
3.3 資料庫設定
-
1)選擇資料庫
-
前期 MySQL 資料庫準備工作
-
1> 設定 /usr/local/openfire 資料夾的訪問許可權為可讀寫
-
方法 1:在 finder 中前往資料夾 /usr/local/,右鍵 openfire 資料夾,顯示簡介,點選如圖右下角中的鎖圖示解鎖,並設定許可權為可以讀寫。
-
方法 2:開啟終端,輸入如下命令,其中 777 表示授權可讀寫許可權,000 表示無訪問許可權。
$ sudo chmod 777 /usr/local/openfire
-
-
2> 在終端中登陸 MySQL,輸入以下命令,然後輸入資料庫的 root 密碼登入
# 登入 mysql $ mysql -u root -p
-
輸入原 root 賬戶密碼,登入成功後終端會輸出:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 946 Server version: 5.7.17 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
-bash: mysql: command not found
-
-
3> 在終端輸入以下命令,建立資料庫 openfire
create database openfire;
-
回車後,終端輸出
Query OK, 1 row affected (0.03 sec)
-
-
4> 在終端輸入以下命令,匯入 openfire 資原始檔夾 resources/database 下的資料表
use openfire; source /usr/local/openfire/resources/database/openfire_mysql.sql
-
在終端出現一排匯入過程
Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) mysql>
-
* 5> 在終端輸入以下命令,重新整理許可權 ```objc flush privileges;
-
回車後,終端輸出
Query OK, 0 rows affected (0.07 sec)
-
6> 在終端輸入以下命令,退出 MySQL
exit
-
-
如果要設定外部資料庫(推薦,比如:MySQL),選擇標準資料庫連線。
-
-
2)設定資料庫連線
-
設定標準資料庫連線
-
1> 資料庫驅動選項
- 選擇 MySQL,前提是已安裝 MySQL。
-
2> JDBC 驅動程式類
-
預設不變,預設為:
com.mysql.jdbc.Driver
-
-
3> 資料庫 URL
-
形式如下:
jdbc:mysql://你的主機名:埠號/資料庫名稱 jdbc:mysql://[host-name]:3306/[database-name]?rewriteBatchedStatements=true
- [host-name] :主機名
- [database-name]:資料庫名稱
-
這裡設定為:
jdbc:mysql://localhost:3306/openfire
- 其中主機名 [host-name] 改為 localhost。
- 其中資料庫名稱 [database-name] 改為 openfire。
-
解決資料庫字元編碼問題,可以在後面加
?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
-
最終的 url 形式是
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
-
注意:前提是已存在一個名為 openfire 的資料庫,否則會報如下錯誤,連線配置不成功。openfire 資料庫的建立具體見前面所講的 “前期 MySQL 資料庫準備工作”。
- The Openfire database schema does not appear to be installed. Follow the installation guide to fix this error.
-
-
4> 使用者名稱和密碼
-
這裡的使用者名稱密碼,是訪問 MySQL 資料庫時使用的帳號和密碼。
- 使用者名稱:root
- 密碼:root 賬戶密碼
-
-
3.4 配置檔案設定
-
如果不打算使用 LDAP,則保持預設設定即可。
-
特性設定時出錯問題解決
-
解決方法
- 在 OpenFire 偏好設定中重啟 OpenFire,然後重新進入 OpenFire web 配置頁面,重新開始配置 Openfire 伺服器即可。
-
3.5 管理員賬戶設定
-
可以隨便填寫一個管理員郵箱,輸入要設定的密碼即可。管理員賬號預設為 “admin”,如果不設定密碼,則預設密碼為 “admin”。
-
自定義管理員賬戶名方法
-
在終端輸入以下命令,輸入資料庫的 root 密碼,登陸具體的資料庫(openfire)
$ mysql -u root -p openfire
-
刪除表 “ofUser” 中的 admin 帳戶
delete from ofUser where username = 'admin';
-
建立自定義管理員(使用者名稱:qianchia,密碼:123456)
insert into ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) values('qianchia','123456','123456','Administrator','[email protected]','0','0');
-
檢視使用者
select * from ofUser;
-
如果可以往資料庫裡插入使用者但是在使用者摘要卻沒有資料,這是因為 openfire 的資料庫驅動包太舊了,而安裝的資料庫太新了,把 openfire 裡的驅動包換成新的就行了,路徑:/usr/local/openfire/lib。
-
-
3.6 登陸管理控制檯
-
完成安裝後可以輸入使用者名稱和密碼登陸管理控制檯
-
預設的管理員帳號是 “admin”,預設管理員密碼 “admin”,如果上面設定了新密碼,則管理員密碼是新密碼。如果重設了使用者名稱,必須重啟 openfire 伺服器。
-
無法登入管理控制平臺問題解決
-
安裝 Openfire 後 admin 無法登入管理控制平臺。登入時提示:Login failed:make sure your username and password are correct and that you’re an admin or moderator。
-
解決方案如下:
-
1)使用 MySQL 管理工具(如 MySQL Workbench)進入資料庫,進入表 “ofuser”,將該表清空
-
然後執行該 SQL
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate) VALUES ('admin', 'admin', 'Administrator', '[email protected]', '0', '0');
-
-
2)關閉 Openfire 服務,就是從其控制檯 stop 然後再 start,再用使用者名稱:admin,密碼:admin 登入即可。
-
-
4、測試 Openfire 伺服器
4.1 新增測試賬戶
-
伺服器配置完成之後,我們可以建立幾個使用者,然後客戶端可以使用這些使用者資訊登入,互相傳輸訊息。
4.2 XMPP 客戶端設定與使用
-
有許多通訊聊天客戶端可以支援 XMPP 協議,比如,Mac 電腦就自帶了一個 “資訊” app,“資訊” app 就支援 jabber 通訊協議(XMPP 的別名)。
-
開啟 Mac 的 “資訊” app,點選選單 資訊 -> 新增賬戶,選擇其他 “資訊” 賬戶…
-
選擇 jabber 賬戶型別,填寫相關資訊
- 賬戶型別:Jabber
- 使用者名稱:上邊新增的測試賬戶名,格式必須為:
名稱@openfire伺服器名稱
- 密碼:使用者名稱對應的密碼
- 伺服器:openfire 伺服器地址,可以使用自動查詢伺服器和埠
- 埠:openfire 伺服器客戶端埠
-
然後,提示驗證證書,選擇繼續。
-
登入成功。
-
登入成功後在 openfire 伺服器端可以看到使用者的登入狀態。
5、解除安裝 Openfire 伺服器
-
1)解除安裝之前首先要停止 Openfire 服務。
-
系統偏好中點選 Openfire 圖示,如下圖
-
在 Openfire 偏好設定介面中,點選 Stop Openfire。
-
-
2)刪除 Openfire 檔案。
-
在終端裡,輸入以下三條命令執行即可。
$ sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
-
以上執行後需要輸入管理員密碼。
$ sudo rm -rf /usr/local/openfire $ sudo rm /Library/LaunchDaemons/org.jivesoftware.openfire.plist
-
6、常見問題
-
1)每次重啟 Mac 電腦都需要重新配置 Openfire 問題
-
解決方法:
- 開啟 /usr/local/openfire/conf/ 資料夾。
- 將 openfire.xml 和 security.xml 兩個檔案的許可權設定為讀與寫。
- 重新完成 Openfire 配置。
-