最近工作需要开发im,对比了openfire和tigase,普遍评价tigase并发量比openfire高,决定使用tigase。
万丈高楼平地起,第一步部署tigase,百度教程,很多,但都是tigase5.2的,跟着配置好,启动服务的时候遇到数据库错误。错误如下:
PubSub Component is not compatible with database schema which exists in jdbc:mysql://localhost/tigasedb?user=tigase&password=tigase&useUnicode=true&characterEncoding=UTF-8 This component uses newer schema. To continue use of currently deployed schema, please use older version of PubSub Component. To convert database to new schema please see: https://projects.tigase.org/projects/tigase-pubsub/wiki/PubSub_database_schema_conversion ShutdownThread started...
大概意思是数据库不匹配,无奈,下载tigase5.2部署,成功了,应该是tigase7.1数据库结构作了调整,接着查阅上面的帮助,然而并没有什么用,问题依旧。百度也找不到有效的答案。无奈改用谷歌,竟然找到了解决方案。
下面是正确的步骤:
1 下载安装包
https://projects.tigase.org/projects/tigase-server/files
选择 tigase-server-7.1.0-b4379-dist-max.tar.gz
2 解压(终端执行命令或手动解压都行)
tar -zxvf tigase-server-5.2.0-b3447-dist-max.tar.gz
3 终端 进入 tigase目录
cd tigase-server-5.2.0-b3447-dist-max
4 赋予权限
chmod u+x ./scripts/tigase.sh
chmod u+x ./scripts/db-create-mysql.sh
5 创建数据库,如果没有安装mysql,请自行搜索,这里不作说明。
注意了,这里如果采用网上写的方法,用下面命令创建,就会发生开头说的错误:
./scripts/db-create-mysql.sh root guanghua mytigdb1 root guanghua 127.0.0.1
需要手动执行sql文件,步骤如下:
1:终端进入tigase根目录,路径根据自己实际情况修改。 cd cd Desktop/tigase-server-5.2.2-b3463/ 2:进入mysqi mysql -u root -p 3:输入密码后,分别执行下面语句 mysql> create database tigase7db; mysql> use tigase7db; 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 (不确定是否必须执行) ok,数据库创建成功。
6 修改两个配置文件
1:etc目录下tigase.conf文件。
首先查找java_home的真实路径,在终端中执行:/usr/libexec/java_home,会输出java_home的真实路径,本人为:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home。如果没有,需要安装jdk,这里不做说明。
此时,为了简单,可以直接修改etc目录下tigase.conf中JAVA_HOME处为JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
tigase.conf文件配置完成。
下面的另一个复杂的方法,可以忽略。
如果已经配置了电脑的javahome环境变量,可以写成:JAVA_HOME="${JAVA_HOME}" 配置环境变量步骤如下: unix:bin bin$ cd ~ 进入到 ~ 目录 unix:~ bin$ touch .bash_profile 创建一个配置文件 unix:~ bin$ vi .bash_profile 使用vi编辑器编辑 .bash_profile文件 然后输入 i ,在vi编辑器里面输入 i 的意思是开始编辑。 vi编辑器里面的内容如下: JAVA_HOME=上面获取的目录 CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$JAVA_HOME/bin:$PATH: export JAVA_HOME export CLASSPATH export PATH 添加如上所示的语句就可以了,第一行代表的是jdk的路径,一定要记住选择到 Home 这个文件加下面; 然后退出vi编辑器使用如下命令: 1. 输入 ese 2. 输入冒号 : wq 3. 保存退出 如果以上修改完毕切正确,那么接下来就是让配置的环境变量生效,使用如下命令: source .bash_profile
2:etc目录下init.properties文件,配置如下(数据库连接信息按实际情况修改):
config-type=--gen-config-def --admins=admin@jabber.your-great.net --virt-hosts =test.tigase.com --monitoring=jmx:9050,http:9080,snmp:9060 --debug=server --user-db=mysql --user-db-uri=jdbc:mysql://localhost/tigase7db?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8 --comp-name-1 = muc --comp-class-1 = tigase.muc.MUCComponent --comp-name-2 = pubsub --comp-class-2 = tigase.pubsub.PubSubComponent --sm-plugins=-starttls
7:开启tigase服务
终端进入tigase目录
开启命令 ./scripts/tigase.sh start etc/tigase.conf 停止命令 ./scripts/tigase.sh stop etc/tigase.conf
下面命令查看日志,可以查看是否有错误,开头的错误信息就在里面看到的。
1: cd/logs
2: tail -200f tigase-console.log
8:测试
使用spark,高级 中设置ip和端口后,创建账号,服务器输入第6步中红色字体设置的服务器名test.tigase.com。
如果没问题,将会创建成功,然后登录测试。