搭建开源IM系统

踩风火轮的乌龟 2011-12-18

用mysql+openfire+spark搭建开源IM系统

mysql是数据库,用于存储信息。

openfire是XMPP协议服务器,实现了XMPP协议。

spark是客户端。 

环境:

root@Ubuntu:~# uname -a
Linux ubuntu 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 i386 GNU/Linux

jdk7

openfire3.7.1

mysql:Server version: 5.1.58-1ubuntu1 (Ubuntu)

 

 

服务器搭建:

下载openfire源码,解压后的目录结构:

 

搭建开源IM系统

 

帮助文档在:documentation\docs\index.html

 

1、安装 openfire

1.1、安装数据库(以mysql为例)

ubuntu默认没有安装mysql.你只要 apt-get install mysql.就可以下载和安装了。你可以下载mysql源码进行编译安装。

安装后常见的问题:

A、防火墙打开,解决方法是关闭防火墙,或者打开相应的端口(见后面端口列表)

B、其它机器不能访问mysql,解决方法,新增加用户,让此用户能从其它机器访问。

其一:

mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "password";

允许xoops_root用户可以从任意机器上登入MySQL。

其二:

$sudo gedit /etc/mysql/my.cnf

老的版本中

>skip-networking => # skip-networking

新的版本中

>bind-address=127.0.0.1 => bind-address= 你机器的IP 或者去掉此行。

这样就可以允许其他机器访问MySQL了。

 

1.1.1、建立库表:

#mysqladmin create [databaseName]

databaseName:是数据库名。

1.1.2、导入库表,安装目录/resources/database :
Unix/Linux: <font face="Courier New">cat openfire_mysql.sql | mysql [databaseName];</font>
Windows: <font face="Courier New">type openfire_mysql.sql | mysql [databaseName];</font>

 

1.2、编译openfire

1.2.1、安装并设置 jdk,本人用的是 jdk7

export $JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
1.2.2、安装并设置 ant 
1.2.3、开始编译openfire

进入源码目录下的/build

#ant

搞定编译完成。openfire核心编译完成。

程序会产生在源码目录下的 target 目录下

如果要插件的话(比如IM网关),则要编译插件:

#ant plugins

编译完成,所有插件被放到源码目录下的target/openfire/plugins 

1.2.4、可能出现的问题。

由于我用的是jdk7的版本,openfire3.7是只支持jdk5和jdk6,所以在编译时会提示jdk错误。你只要在build.xml文件中增加下面红色部分就可以解决。

<condition property="java.not.ok" value="true">
            <not>
                <or>
                    <contains string="${ant.java.version}" substring="1.5"/>
                    <contains string="${ant.java.version}" substring="1.6"/>
                    <contains string="${ant.java.version}" substring="1.7"/>
                </or>
            </not>
        </condition>

1.2.5、配置

conf/openfire.xml

 

  <connectionProvider>
    <className>org.jivesoftware.database.DefaultConnectionProvider</className>
  </connectionProvider>
  <database>
    <defaultProvider>
      <driver>com.mysql.jdbc.Driver</driver>
      <serverURL>jdbc:mysql://localhost:3306/openfire</serverURL>
      <username>root</username>
      <password/>
      <testSQL>select 1</testSQL>
      <testBeforeUse>true</testBeforeUse>
      <testAfterUse>true</testAfterUse>
      <minConnections>5</minConnections>
      <maxConnections>25</maxConnections>
      <connectionTimeout>1.0</connectionTimeout>
    </defaultProvider>
  </database>

1.3、运行

1.3.1、未安装运行

在源码目录下的/build 下运行

#ant run

就可以运行openfire了

root@ubuntu:~/openfire_src/build# ant run
Buildfile: /root/openfire_src/build/build.xml

run:
     [java] Listening for transport dt_socket at address: 8000
     [java] Openfire 3.7.1 [2011-12-13 2:47:08]
     [java] 管理平台开始监听:
     [java]   http://127.0.0.1:9090
     [java]   https://127.0.0.1:9091

 

1.3.2、安装后运行

# /etc/init.d/openfire
Usage /etc/init.d/openfire {start|stop|restart|status|condrestart|reload}
# /etc/init.d/openfire start
Starting openfire:

1.4、配置

访问:  http://127.0.0.1:9090 就可以配置 openfire

搭建开源IM系统

 搭建开源IM系统

相关推荐