红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Debian

在Debian上安装Jabber服务

发布时间:2007-07-30 00:21:18来源:红联作者:Automatic
Jabber是很流行的开源的即时通讯服务。它还可与MSN、Yahoo等等集成整合。既可用于INTERNET上的通讯,也可以应用于企业内部,员工间的通讯。本文以内部网为例,介绍Jabber+Mysql+LDAP的安装。Jabber通过LDAP来用户认证,存储使用Mysql数据库,并带多人会议室(conference)功能。

一、需要的软件及环境:
一台安装了debian的PC,debian 安装 mysql-server。
jabberd2-ldap-mysql
jcr-0.2.4.tar.gz (http://jabber.terrapin.com/JCR/jcr-0.2.4.tar.gz )
mu-conference-0.6.0.tar.gz (http://jabberstudio.rediris.es/mu-conference/mu-conference-0.6.0.tar.gz )

二、安装:
jabber2-ldap-mysql软件包在debian的experimental里,就是试验性质的。所以要修改一下源,否则很多依赖关系无法解决。
sudo vim /etc/apt/source.list
添加以下两行:
deb http://ftp.us.debian.org/debian/ experimental main contrib non-free
deb http://debian.cn99.com/debian/ sid main contrib non-free
然后执行:
sudo apt-get update

sudo apt-get install jabber-common
sudo apt-get install jabberd2-ldap-mysql
此时,jabber已经安装好了。进入/usr/share/doc/jabberd2-ldap-mysql/tools ,解压缩db-setup.mysql.gz,得到mysql初始化的脚本。
sudo tar zxvf db-setup.mysql.gz
sudo mysql -uroot -p < db-setup.mysql
mysql -uroot -p
进入mysql,添加用户权限:
mysql> GRANT select,insert,delete,update ON jabberd2.*
to jabberd2@localhost IDENTIFIED by 'secret';
其中jabberd2是用户名,secret是密码,都可以自己设定。
退出mysql。编辑 vim /etc/jabberd2/c2s.xml
找到

jabberserver
改为 yourhostname ,yourhostname是你的DNS中对这台机器做的解析。
再找到
0.0.0.0
改为 yourip
找到 jabberd2
secret
改为上面mysql设置的用户名和密码。
找到 段,在ip这里输入你的LDAP服务器地址,389 这里输入你的LDAP服务用的端口。
cn=manager,dc=company,dc=com 改成你的LDAP管理的DN。
password 改成你的LDAP管理密码
ou=Users,ou=OxObjects,dc=company,dc=com 改成你的LDAP的用户搜索路径。这些LDAP参数得根据自己的情况设置。
还有重要的,找到 段,把 XXX改为ldap,然后,注释掉 这个段,关闭用户注册功能。
vim /etc/jabberd2/s2s.xml
0.0.0.0
改为yourip
vim /etc/jabberd2/sm.xml
localhost
改为 yourhostname
jabberd2
secret
改为上面的mysql的用户名和密码。为了方便,我设置mysql的时候,就使用的jabber默认的用户名和密码,安全起见,你可以修改一下。
在 /etc/jabberd2 目录下的几个xml文件,都含有




127.0.0.1
5347

jabberd
secret
这些段里的用户密码,如果改动,则都要保持一致。到这里,jabber安装完成。

/etc/jabberd2下有个 roster.xml 文件,你可以编缉这个文件,按里面的格式,预设一下组和用户,这样,当用户第一次登录时,客户端面板上就会有你设置好的组或者用户在联系表里。
编辑了 roster.xml 后,还需要修改一下 sm.xml 文件,找到末尾的 段,使 生效,添加:


三、mu-conference 的安装:
分别对 jcr 和 mu-conference 解包。
sudo tar zxvf jcr-0.2.4.tar.gz
sudo tar zxvf mu-conference-0.6.0.tar.gz
cd jcr-0.2.4
make
cp jcr-0.2.4/src/main.c mu-conference-0.6.0/src/
cp jcr-0.2.4/src/jcomp.mk mu-conference-0.6.0/src/
cd mu-conference-0.6.0/src/
make -f jcomp.mk
cp mu-conference /usr/sbin/
如果编译有错误,可找一台完全安装的linux机器编译,然后把编译好的二进制文件mu-conference拷贝到jabber服务器的/usr/sbin目录下。
下载 http://ejabberd.jabber.ru/files/efiles/muc-jcr.xml 到/etc/jabberd2
vim /etc/jabberd2/muc-jcr.xml
127.0.0.1改为 yourip
/var/log/jabberd2/spool/
/var/log/jabberd2/ 改为你指定的目录

建立 mu-conference 的启动脚本:
cd /etc/init.d/
sudo vim mu-conference
输入以下内容:
#!/bin/sh
##############################################################
#
# mu-conference -- script to start Mu-Conference.
#
#############################################################

DAEMON=/usr/sbin/mu-conference
CONF=/etc/jabberd2/muc-jcr.xml
NAME=mu-conference
USER=ejabberd //输入你运行这个脚本的用户名

#############################################################

if [ "`/usr/bin/whoami`" != "$USER" ]; then

echo "You need to be" $USER "user to run this script."
exit 1
fi

case "$1" in
debug)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in debugging mode."
$DAEMON -B -d 255 -c $CONF &
;;
start)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME."
$DAEMON -B -c $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|restart}"
exit 1
esac

修改权限
chmod 755 mu-conference
四、运行服务:
/etc/init.d/jabberd2-ldap-mysql start (或者stop,restart)
/etc/init.d/mu-conference start (或者stop,restart)
也可加到 /etc/rc.local 里去开机自动运行。
netstat -an ,看看是不是打开了5222端口。OK!带会议室的jabber服务器就搭建好了。
你可以使用jabber的客户端软件登录看看。linux下可以使用 gaim ,windows下也可以用gaim ,psi,pandion。 个人感觉,Pandion 风格类似于MSN,比较适合。

打完收工!
文章评论

共有 0 条评论