Linux下安裝ejabberd支持MSSQL |
發(fā)布時間: 2012/9/21 17:23:03 |
一、Linux下安裝unixODBC、freetds 源碼包:freetds-0.82.tar.gz、unixODBC-2.3.0.tar.gz 1. 安裝unixODBC gunzip unixODBC-2.3.tar.gz tar zxvf unixODBC-2.3.tar ./configure --prefix=/usr/local/unixODBC-
make install 2. 安裝freetds tar zxvf freetds-0.82.tar.gz cd freetds-0.82 ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --with-tdsver=8.0 make make install cd /usr/local/unixODBC,向ODBC添加SQLServer驅(qū)動 # vi etc/odbcinst.ini 寫入如下內(nèi)容: [ODBC] Trace = Yes TraceFile = /tmp/sql.log ForceTrace = Yes Pooling = No [SQLSERVER] Description = SQLSERVER Driver = /usr/local/freetds/lib/libtdsodbc.so Setup = /usr/local/freetds/lib/libtds.so UsageCount = 1 CPTimeout = 5 CPReuse = 5 FileUsage = 1 添加DSN # vi etc/odbc.ini 寫入如下內(nèi)容 [ejabberd] Driver = SQLSERVER Description = SQLSERVER Server = 192.168.2.159 Database = ejabberd Port = 1433 odbcinst.ini中的驅(qū)動名稱,Database是數(shù)據(jù)庫的名稱 保存并退出。 測試ODBC的連接 # bin/isql -v ejabberd sa 111111 SQL> SQL> quit 二、 ejabberd修改odbc文件 1. 安裝ejabberd二進制包(略) 安裝位置為/usr/local/ejabberd 2. 修改ejabberd的ODBC文件 進入/usr/local/ejabberd/conf目錄 Vi odbc.ini 再次添加DSN信息: [ejabberd] Driver = SQLSERVER Description = SQLSERVER Server = 192.168.2.159 Database = ejabberd Port = 1433 Vi odbcinst.ini 再次添加MSSQL的driver信息: [ODBC] Trace = Yes TraceFile = /tmp/sql.log ForceTrace = Yes Pooling = No [SQLSERVER] Description = SQLSERVER Driver = /usr/local/freetds/lib/libtdsodbc.so Setup = /usr/local/freetds/lib/libtds.so UsageCount = 1 CPTimeout = 5 CPReuse = 5 FileUsage = 1 注:用二進制安裝的包,Ejabberd包內(nèi)置安裝了一部分ODBC文件,但是包沒有安裝完全。 [root@ejabberd bin]# pwd /usr/local/ejabberd/lib/odbc-2.10.3/priv/linux-x86/bin [root@ejabberd bin]# ls odbcserver Ejabberd會調(diào)用此文件odbcserver,運行此文件會提示找不到libodbc.so.1 此時我們自己安裝的unixODBC位于/usr/local/unixODBC下。 我們做一個軟鏈接即可調(diào)用: ln -s /usr/local/unixODBC/lib/libodbc.so.1 /usr/lib 三、 ejabberd修改配置文件 修改配置文件路徑:/usr/local/ejabberd/conf/ejabberd.cfg 1. 驗證修改 這個選項值的名字可能被誤導, 因為 auth_method 名字用于通過ODBC以及通過原生MySQL接口訪問關(guān)系數(shù)據(jù)庫. 把{auth_method, internal}.注釋掉。 {auth_method, [odbc]}. 2. 數(shù)據(jù)庫連接 實際的數(shù)據(jù)庫訪問使用選項 odbc_server 來定義. 它的值通常用來定義我們是否想使用 ODBC, 或兩個可用的原生接口之一。 {odbc_server, "DSN=ejabberd;UID=sa;PWD=111111"}. 3. 存儲模塊修改 以下幾項,在原有基礎上加上_odbc mod_last_odbc、mod_offline_odbc、mod_privacy_odbc、mod_private_odbc、mod_pubsub_odbc、mod_roster_odbc、mod_vcard_odbc mod_last_odbc: 最后連接日期和時間 mod_offline_odbc: 離線消息 mod_privacy_odbc: 用戶黑名單規(guī)則 mod_private_odbc: 私有XML存儲 mod_pubsub_odbc:發(fā)行-訂閱 mod_roster_odbc:名冊管理 mod_vcard_odbc:用戶的VCARD 四、 MSSQL擴展架構(gòu) 利用ejabberd-2.1.4.tar.gz源碼包ODBC自帶的mssql2005.sql文件,執(zhí)行生成表和主鍵。 五、 其他配置 刪除以前的數(shù)據(jù)庫文件,進入/usr/local/ejabberd/database 目錄, 新建一個管理員用戶,首先./start啟動ejabberd ejabberdctl register admin ejabberd 111111 添加一個用戶 將用戶加入到管理員進行web管理 {acl, admin, {user, "admin", "ejabberd"}}. {access, configure, [{allow, admin}]}. 注冊用戶正?捎。
本文出自:億恩科技【mszdt.com】 |