Tigase手動安裝過程

普通程式設計師發表於2018-12-06

Tigase手動安裝過程

公司要做一個IM系統,現階段人力資源很有限。產品、研發、測試目前就我一個人。跟領導溝通後決定先採用開源原件tigase先解決有無問題,後續人員到位後進行重構。本文主要介紹生產環境下tigase的安裝問題(此次安裝是在測試機器中進行,但是周邊環境近似生產環境)。

網上已有很多Tigase的安裝文件,Tigase官方文件(英文)也很詳細。但是我還是要再寫一下安裝過程,主要原因是網上的安裝文件基本都是在特別簡單的環境中進行安裝的過程,細節不夠豐富;Tigase官方文件內容和方式很多,也很詳細,但是對於新手閱讀準備時間較長,此外英文讀起來相對困難,一不小心會遺漏細節(原版文件隨著版本的更新,有些錯誤的地方)。

tigase官方文件有很多安裝方式,但是在真實的生產環境下,GUI等方式並不適用。linux伺服器需要透過ssh方式連線,中間有堡壘機,研發人員拿不到linux使用者的密碼(Web安裝方式在某些步驟需要輸入root密碼,該方式也不一定適用)。DBA要掌握資料庫管理許可權,一般也不會給資料庫使用者提供超級管理員許可權,埠也可能不是預設埠(tigase如果用mysql資料庫,個別儲存過程需要此許可權。DBA提供的使用者密碼往往很複雜,含有特殊字元,也需要進行特殊處理)。因此在初步研究後,開始了tigase的安裝。安裝大概花了1天半時間,期間各種趟坑。

安裝環境

環境版本
作業系統CentOS release 6.5 (Final)
資料庫MySQL  5.6.23
tigase server7.1.0
JDK1.8

一、硬體伺服器作業系統

運維團隊負責上架,作業系統CentOS release 6.5 (Final)。 感謝 蓋益

兩臺機器 bw-test-ab-v01,bw-test-ab-v02(暫時不可訪問,運維團隊跟進)

原計劃在兩臺上部署tigase叢集,結果有一臺不可使用,方案果斷改成先單機部署(以後再上叢集部署方法)。

二、資料庫

DBA團隊負責安裝資料庫 MySQL  5.6.23,安裝在bw-test-ab-v01伺服器。感謝 盛亮、畢常奇

      資料庫安裝在bw-test-ab-v01

      具體引數如下     使用者:tigasedb_test    密碼:r#xxxxxxx09H^jTQ%p       埠:3324     地址:10.xxx.90.194  (用x隱去敏感資訊)

三、JDK安裝

1、在usr目錄下建立java安裝目錄

cd /usr

mkdir java

2、複製檔案jdk-8u112-linux-x64.tar.gz 到/usr/java 目錄(java目錄需要提前建立)

3、解壓jdk到當前目錄

tar -zxvf jdk-8u112-linux-x64.tar.gz得到資料夾jdk1.8.0_112

4、建立快捷連線(節省目錄長度)

ln -s /usr/java/jdk1.8.0_60/ /usr/jdk

5、編輯配置檔案,配置環境變數

vim /etc/profile

檔案末尾新增如下內容:

JAVA_HOME=/usr/jdk

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

6、執行命令配置生效

source /etc/profile

四、Tigase伺服器安裝

1、準備tigase伺服器檔案

將tigase-server-7.1.0-b4379-dist-max.tar.gz 檔案複製到bw-test-ab-v01 機器的 /usr目錄。解壓縮 tar -xzvf tigase-server-7.1.0-b4379-dist-max.tar.gz  ,將得到的目錄重新命名為tigase。 tigase伺服器的安裝目錄為  /usr/tigase。

2、修改tigase.conf (/usr/tigase/etc目錄中)  中 JAVA_HOME=/usr/jdk (JDK安裝路徑)。

3、初始化資料庫

(1)在/usr/tigase目錄執行命令 mysql -h 10.xxx.90.194 -P 3324 -utigasedb_test -p'r#xxxxxxx09H^jTQ%p'; (密碼用由於有特殊字元,需要用''括起來,另外發現mysql -h localhost -P 3324 -utigasedb_test -p'r#xxxxxxx09H^jTQ%p'; 連不上資料庫,可能跟資料庫安裝方式相關)

(2)官方文件Prepare the MySQL Database for the Tigase Server章節有一堆資料庫賬號授權過程,我這邊DBA估計已經做了相關工作了,此步驟略過。

(3)初始化資料庫表結構

mysql> use tigasedb;(切換當前資料庫)

分別執行如下5條語句

mysql> source database/mysql-schema-7-1-schema.sql;           (這一條檔名官方文件寫出錯了 ) 

mysql> source database/mysql-pubsub-schema-3.2.0.sql;

mysql> source database/mysql-socks5-schema.sql;

mysql> source database/mysql-schema-7-1-sp.sql         (官方文件遺漏此條,如果不執行,tigase server無法正常啟動)

mysql> source database/mysql-schema-7-1-props.sql    (不確定是否必須執行)

注意:在執行mysql-schema-7-1-sp.sql語句時,由於DBA提供的賬號沒有SUPER許可權(一般DBA都不會給),出現如下錯誤

ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

經排查,是mysql-schema-4-sp.sql檔案中的TigGetDBProperty函式沒有建立成功,果斷聯絡DBA給開了許可權,將此函式的creat語句單獨執行了一遍,成功。

(4)配置資料庫UTF-8支援。DBA給的庫已經是該編碼了,忽略。

4、修改init.properties檔案。配置如下

config-type=--gen-config-def

--admins=admin@bw-test-ab-v01.dns.guazi.com

--virt-hosts=bw-test-ab-v01.dns.guazi.com

--debug=server

--comp-name-1=http

--comp-class-1=tigase.http.HttpMessageReceiver

--user-db=mysql

--user-db-uri=jdbc:mysql://10.xxx.90.194:3324/tigasedb?user=tigasedb_test&password=r#xxxxxxx09H^jTQ%25p&useUnicode=true&characterEncoding=UTF-8

http/setup/admin-credentials=admin:tigase

注意幾個點:

(1)virt-hosts配什麼

tigase有一個安裝方式 Installation Using Web Installer,才用此方式,中間某一步,tigase會自動讀出虛擬主機名字。這個方式我不詳細講了。

virt-hosts值跟具體的網路環境有關,更多細節未來再描述。我用的方法,透過兩個linux命令

cat /etc/resolv.conf         得到dns.guazi.com

hostname                        得到bw-test-ab-v01

拼接起來搞定。(之前我在windows上配置tigase7.0.4的時候,是修改了一下hosts檔案,設定127.0.0.1為test@org,最後hosts貌似配的機器名)

(2)user-db-uri的配置

由於資料庫密碼中含有'%'需要轉碼, '%'需要改為 '%25' 配置為r#I7Gk9sn09H^jTQ%25p  。否則tigase連不上資料庫

(3)admins配置

此時,tigase資料庫中還沒有使用者,這裡配置admin@bw-test-ab-v01.dns.guazi.com為管理員,等到伺服器裝好後,註冊admin@bw-test-ab-v01.dns.guazi.com使用者,該使用者預設就會具有管理員許可權。當然可以配置多個管理員。

(4)http/setup/admin-credentials=admin:tigase 是透過Web方式安裝的初始賬戶和密碼,我沒有將它刪掉。

5、啟動tigase伺服器

按照以上步驟,完成了Tigase伺服器配置,在/usr/tigase目錄下執行 ./scripts/tigase.sh start  即可啟動伺服器。觀察日誌logs/tigase-console.log 和 logs/tigase.log.0 沒有報錯。伺服器安裝完畢。訪問  正常。

四、註冊使用者

訪問地址ui,能看到註冊按鈕,理論上就可以註冊使用者使用了。但是我裝的tigase-server-7.1.0-b4379這個版本此功能竟然無法使用(註冊使用者沒反應,資料庫中也沒有成功),目前我還不確定是我安裝問題,還是這個版本的什麼bug。

怎麼解決呢?透過資料庫直接註冊使用者。

在Navicat(我連線資料庫的客戶端),執行命令 call TigAddUserPlainPw('test1@bw-test-ab-v01.dns.guazi.com', 'test1'); 成功註冊使用者test1@bw-test-ab-v01.dns.guazi.com,密碼test1。 在註冊一個admin@bw-test-ab-v01.dns.guazi.com使用者(管理員)。

檢查資料庫表tig_users,使用者註冊成功。

五、使用

我是用的Psi軟體,兩個使用者能夠正常使用。同時透過Psi軟體能夠註冊新使用者。更多使用細節,以後再聊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556438/viewspace-2284421/,如需轉載,請註明出處,否則將追究法律責任。

相關文章