[精华] 使用开源协议软件搭建即时通讯服务器
www.chinaunix 作者:liheng  发表于:2009-05-02 12:18:34
发表评论】【查看原文】【Linux讨论区】【关闭

作者:liheng
Email:liheng_2006 at hotmail

Jabber 是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。
    XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的技术来自于Jabber,其实它是 Jabber的核心协定,所以XMPP有时被误称为Jabber协议。Jabber是一个基于XMPP协议的IM应用,除Jabber之外,XMPP还支持很多应用。
关于 Jabber 的详细内容,大家可以上 Jabber 的官方网页: 查看。
Opernfire 是一个在开源 GPL 和商业双许可的即时通讯服务器。Openfire 的即时通讯服务采用了广泛采用的开放协议---XMPPOpenfire 非常容易安装与管理,同时 Openfire也提供了非常高的安全性与性能。Openfire 支持WINDOWSLINUXMAC平台。目前最新的版本是:Openfire-3.5.2。在本例中我使用的是 Linux 版本。关于 Openfire 的详细内容,大家可以上 Openfire 的官方网页:/projects/openfire/index.jsp 
Spark 是一款开源的、多平台的即时通讯客户端。它提供了嵌入式聊天室、集成电话、高安全性支持。还为用户提供了非常好的体验功能,如在线拼写校验,聊天室标签、交谈记录等。Spark 支持 WindowsLinuxMAC 平台,目前最新的版本是:Spark-2.5.8。关于 Spark 的详细内容,大家可以上 Spark 的官方网页:/projects/spark/index.jsp 
安装
下面我就来向大家介绍一下如何配置 Openfire 来构建企业内的即时通讯服务器。首先我还是向大家介绍一下我的环境:
Openfire 服务器OSRedHat Enterprist Linux 5.0
Openfire 版本:Openfire
MYSQL 版本:mysql-5.1.52a
Spark 版本:Spark-2.5.8
Apache 版本:http-2.2.6
Java 版本:jre1.6

由于Openfire 是使用 Java 开发的,需要Java环境支持,请确保你的系统中已经安装了 JRE。建议使用最新的JRE 版本: jre1.6。可以到 java的官方站点:www.java 上下载。
配置JAVA 环境
[root @test ~] # cp jre-6u6-linux-i586.bin /usr/local
[root @test ~] # cd /usr/local
[root @test local] # ls –l | grep jre
-rwxr--r--   1 root  root  19750740  6 28 11:14 jre-6u6-linux-i586.bin
[root @test local] # ./jre-6u6-linux-i586.bin
此时将显示二进制许可协议。通读许可协议。按空格键显示下一页。读完许可协议后,输入 yes 继续安装。
JRE 安装在其自身的目录中。在本例中,它将安装在 /usr/local/jre1.6.0_6 目录中。当安装完成时,您将看到 Done(完成)字样。
[root @test local] # ln –s /usr/local/jre1.6.0_6/plugins/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox-1.0.4/plugins/
安装mysql。在本例中我要使用 mysql 来作为 Openfire服务器使用的数据库,但这并不是必须的,因为 Openfire 本身内置有数据库,你可以选择使用 Openfire 内置的数据库,也可以使用外置数据数据库。
[root @test local] # tar xzvf /root/mysql-5.0.
[root @test local] # ln –s mysql-5.0.51a-linux-i686 mysql
[root @test local] # cd mysql
[root @test mysql] # mv /etc/myf /etc/myf.bak
[root @test mysql] # cp support-files/my-mediumf /etc/myf
[root @test mysql] # chown –R mysql .
[root @test mysql] # chgrp –R mysql .
[root @test mysql] # ./scripts/mysql_install_db --user=mysql &
[root @test mysql] #chown –R root .
[root @test mysql] # chown –R mysql data
[root @test mysql] #./bin/mysqld_safe --user=mysql &
[root @test mysql] # netstat –tlunp | grep 3306
[root @test mysql] # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root @test mysql] # chmod 755 /etc/init.d/mysqld
[root @test mysql] # chkconfig —add mysqld
[root @test mysql] # chkconfig —level 35 mysqld on
[root @test mysql] # mkdir /usr/local/mysql/lib/mysql
[root @test mysql] # mkdir /usr/local/mysql/include/mysql
[root @test mysql] # chown&sql /usr/local/mysql/lib/mysql
[root @test mysql] # chwon&sql /usr/local/mysql/include/mysql
[root @test mysql] # ln –s /usr/local/mysql/lib/* /usr/local/mysql/lib/mysql
[root @test mysql] ## ln –s /usr/local/mysql/include/* /usr/local/mysql/include/mysql
[root @test mysql] # echo /usr/local/mysql/lib/mysql >> /etc/f
[root @test mysql] # ldconfig
安装apache
[root @test mysql] # cd ..
[root @test local] # tar xzvf /root/httpd-2.2.
[root @test mysql] # cd httpd-2.2.6
[root @test httpd-2.2.6] # ./configure –prefix=/usr/local/apache --enable-so --enable-rewrite
[root @test httpd-2.2.6] # make
[root @test httpd-2.2.6] # make install
[root @test httpd-2.2.6] # echo /usr/local/apache/bin/apachectl start >> /etc/rc.local

安装php-5.2.3
[root @test httpd-2.2.6] # cd ..
[root @ test local] # tar -zvxf /root/php-5.2.
[root @ test local] # mkdir -p /usr/local/php
[root @ test local] # cd php-5.2.6
[root @ test php-5.2.6] # ./configure —prefix=/usr/local/php             
  —with-apxs2=/usr/local/apache/bin/apxs   —with-mysql=/usr/local/mysql
  —with-mysqli=/usr/local/mysql/bin/mysql_config   —with-xml   —with-png
  —with-jpeg   —with-zlib   —with-freetype   —with-gd    —enable-track-vars    —enable-mbstring=all 
[root @ test php-5.2.6] # make
[root @ test php-5.2.6] # make install
[root @ test php-5.2.6] # cp php.ini-dist  /usr/local/php/lib/php.ini 

注:编辑apache配置文件f,以apache支持php
[root @ test php-5.2.6] # vi /usr/local/apache/f
添加如下二行
  AddType application/x-httpd-php  .php
  AddType application/x-httpd-php-source  .phps

windows怎么使用mysql定位至DirectoryIndex index.html 
  修改为:
   DirectoryIndex  index.php  index.html

这里将网站根目录指定到/var/www
DocumentRoot /usr/local/apache/htdocs
修改为:DocumentRoot /var/www
<Directory /usr/local/apache/htdocs>
修改为:<Directory /var/www>
 mysql 中建立数据库 openfire
[root @ test php-5.2.6] # /usr/local/mysql/bin/mysql
mysql > CREATE DATABASE openfire;
mysql > exit;
 Openfire 的数据库资料导入 mysql
[root @ test php-5.2.6] # cat /usr/local/openfire/resource/database/openfire_mysql.sql | /usr/local/mysql/bin/mysql   openfire
出于安全考虑,为mysql 用户 root 设置密码
[root @ test php-5.2.6] # /usr/local/mysql/bin/mysqladmin –u root password 123456
[root @ test php-5.2.6] # /usr/local/openfire/bin/openfire start
查看 openfire 控制台端口9090 &9091是否已经打开
[root @ test php-5.2.6] # netstat –tlunp



 liheng 回复于:2008-07-06 17:54:44

打开 Firefox 浏览器,在地址栏里输入:127.0.0.1:9090 进入 openfire Tool 页面,开始安装设置 openfire,在你开始设置之前,首先选择适合于你的语言,这里我们当然选择中文(简体)Simlified Chinese(zh_CN)”。


 liheng 回复于:2008-07-21 13:31:05

点击continue,开始一步设置---服务器设置,这里保持默认即可


 liheng 回复于:2008-07-21 13:32:00

点击继续,开始下一步设置----数据库设置,如果你使用一个外部数据库的话,就选择标准数据库连接,若使用 openfire 自带的数据库的话,就选择嵌入的数据库。在本例中因为我使用的数据库是 mysql ,所以选择标准数据库连接


 liheng 回复于:2008-07-21 13:32:54

点击继续,开始下一步设置


 liheng 回复于:2008-07-21 13:33:48

数据库驱动选项:     选择使用数据库的类型,有 mysqlmssqloracel 等供选择,本例中选择 mysql
JDBC驱动程序类:    此处保持默认即可。
数据库URL         jdbc:mysql://[local_host]:3306/[database_name],将 [local_host] 改成mysql 服务器的IP地址,这里我是在本机操作,所以[local_host]q我设置成:127.0.0.1[database_name]改成刚刚创建的 openfire     的数据库 openfire.
用户名: 输入可以登录 mysql 服务器的用户名,这里我输入mysql 服务器默认的管理员 root
密码:       输入mysql 服务器管理员root 的密码;
Minimum Connections 设置连接 openfire 服务器的最小连接
Maximum Connextions 设置连接 openfire 服务器的最大连接
连接超时:       设置连接 openfire 服务器的连接超时的时间
点击继续按钮,开始下一点设置


 liheng 回复于:2008-07-21 13:34:43

因为此例中,并没有使用 LDAP 服务器,只要选择初使设置即可。点击继续,开始下一步设置


 liheng 回复于:2008-07-21 13:35:26

设置登录 openfire 管理控制台管理员帐户 admin 的密码,如果在这里没有设置,单击跳过这一步的话,默认密码是 admin 。管理员地址可以保持默认,也可以根据自身的情况设置,没有多大影响。点击继续,开始下一步设置


 liheng 回复于:2008-07-21 13:36:10

安装完成,点击登录到管理控制台,进入 openfire  服务器的控制台,开始对 openfire 服务器进入设置。
Spark 客户端安装
Openfire 的默认设置已经可以使用啦,此时安装 Spark 客户端即可开始使用啦。从 Spark 网站下载 Spark 开始安装,安装过程,这里我就不作介绍啦,无非都是 step by step。安装 Spark以后,打开 Spark,出现 Spark 登录窗口,点击帐户


 liheng 回复于:2008-07-21 13:36:55

可以在Spark 上可以自己创建帐号登录 Openfire 服务器


 liheng 回复于:2008-07-21 13:37:39

输入用户名与密码,指定服务器的地址,点击Create Account”创建用户。然后在登录窗口输入刚刚创建的用户名与密码和服务器地址,点击登录。Spark 界面窗口:


 feiyueheu 回复于:2008-07-22 18:13:52

好帖子,我要收藏.呵呵.
以后有机会自己架设一个.呵呵 .
 ffiffiffi 回复于:2008-09-17 09:25:03

你好。我想问下。我在本机(windows)上安装了spark,但是只能启动一个客户端,怎么能同事启动两个或更多的客户端呢,或者该spark软件不支持。
 llzqq 回复于:2008-09-17 10:07:57

不错,鼓励
 3645636 回复于:2008-09-17 17:21:07

一年前我在内部用过,支持文件传输,如果需要让其支持语音与视频,必须安装插件,在xp下试验过,QQ差不多。google搜索openfire
 eveson 回复于:2008-09-17 20:42:54

不错的东东。。。。
 liheng 回复于:2008-09-28 18:32:44

这个倒没有试过哦:em09: :em09: :em09:
 gyl4802959 回复于:2008-09-30 14:59:21

楼主强悍啊…… 学习中……
 lasama 回复于:2008-09-30 15:10:53

以前试过openfire,不过没有仔细研究
支持LZ一把
 chenyx 回复于:2008-09-30 21:20:55

嗯,不错,支持下。。。
 fuleru 回复于:2008-10-02 16:04:33

看样子不错,支持!继续努力!
 moumoulrc 回复于:2008-10-04 11:58:14

没有看明白为什么要装php呢?用来支持mysql???web好像是用jsp写的吧?用tomcat吗?
 ipaddr 回复于:2008-10-04 12:33:32

好东东。。。。。。。。。。。。。。。。
 bian_yuan45 回复于:2008-10-07 00:34:26

好文章,研究ing`
 cugpig 回复于:2008-10-13 17:26:08

不错不错~~~那天兴致来了,我也搭一个玩玩,呵呵
 kns1024wh 回复于:2008-10-13 17:28:12

有空的时候自己做一个出来
 kns1024wh 回复于:2008-10-14 14:49:47

出现一个问题openfire你无法发送文件到某个用户,这个问题出现是什么原因引发的。可以出来说说么

【发现问题,不支持中文文件名】,发送英文的文件名就可以了

[ 本帖最后由 kns1024wh  2008-10-14 14:58 编辑 ]
 虫虫猫 回复于:2008-10-14 16:07:13

这个强大,没事架个玩玩~
 hongw 回复于:2008-12-18 14:29:22

东东虽好 但怎么扩大用户 让大家使用 是个问题。。
QQ虽烂 但每台机器上都有 无奈啊。。。
 MichaelBibby 回复于:2008-12-18 15:49:19

iRedMail 开源邮件服务与 OpenFire 的整合也非常顺利,这里有贴图为证:
/bbs/viewthread.php?tid=315
 jackfya 回复于:2009-04-14 20:41:28

有个问题想资询下
我搭建起来测试通过客户端注册英文名字可以正常登陆,中文名字可以注册但是登陆却上不去。应该调试那里呢?数据库里也有注册的这个中文名。
 liheng 回复于:2009-05-02 12:18:34

最好还是英文好些,中文可能不支持


原文链接:linux.chinaunix/bbs/viewthread.php?tid=1015090
转载请注明作者名及原文出处

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。