我用的是jabberd-2.2.16。
设置LD_LIBRARY_PATH=/usr/local/lib:/usr/local/mysql/lib:/usr/lib:$LD_LIBRARY_PATH
在/etc/ld.so.conf也加入这些路径,然后运行ldconfig
官方版本编译时会有这个错误:undefined reference to `set_debug_log_from_config'。
修改各个目录下的main.c,添加 #ifdef DEBUG
#ifdef DEBUG
set_debug_log_from_config(c2s->config);
#endif
需要先安装mysql,udns,libidn,gsasl,openssl,cppunit...
安装cppunit之后:
export CPPUNIT_LIBS="-L/usr/local/lib -lcppunit -ldl"
export CPPUNIT_CFLAGS=-I/usr/local/include
编译安装。默认mysql是enable的:
cd jabberd
./configure
也可以打开debug:
./configure --enable-mysql --enable-debug
make
make install
可执行文件默认是被安装在/usr/local/bin
配置文件默认被安装在/usr/local/etc
建立jabberd用户和组
groupadd jabber
useradd -g jabber jabber
建立log和pid目录
mkdir -p /usr/local/var/jabberd/pid/
chown -R jabber:jabber /usr/local/var/jabberd/pid/
mkdir -p /usr/local/var/jabberd/log/
chown -R jabber:jabber /usr/local/var/jabberd/log
官方文档说配置文件是安装在/usr/local/etc/jabberd目录下,但实际是在/usr/local/etc/目录下
chown -R root:jabber /usr/local/etc/
chmod -R 640 /usr/local/etc/*
更改/usr/local/etc/下的配置文件。
c2s.xml:
#此id就是用户登录时@后面的部分,要能够被DNS解析:
<local> section里的:<id register-enable='mu'>oldbird.com</id>
<authreg>section里的:<module>mysql</module> #使用mysql做用户认证注册
<!-- Database username and password -->
<user>jabberd2</user>
<pass>jabberd1234</pass>
sm.xml
<local>: <id>oldbird.com</id>
<storage>: <driver>mysql</driver> #使用mysql做数据存储
<!-- Database username and password -->
<user>jabberd2</user>
<pass>jabberd1234</pass>
#该功能只在禁用公开注册,采用外部验证数据库时启用,开启该功能后,当用户第一次登录时,jabberd2会自动把用户信息插入到active表。
#如果开启公开注册功能,则应该禁用该功能,用户信息会在注册时自动插入到active表。
<auto-create/>
各个xml里的<log type='...'> 区域是配置log文件
运行jabberd/tools/db-setup.mysql,创建mysql数据库。
mysql>\. db-setup.mysql
创建用户:
mysql>GRANT select,insert,delete,update ON jabberd2.* to jabberd2@localhost IDENTIFIED by 'jabberd1234';
添加用户:
insert into authreg values(....);
启动命令: /usr/local/bin/jabberd
如果编译时有--enable-debug,可以这样启动:/usr/local/bin/jabberd -D
也可以单独启动各个模块:
% $prefix/bin/router &
% $prefix/bin/resolver &
% $prefix/bin/s2s &
% $prefix/bin/sm &
% $prefix/bin/c2s &
jabberd2服务器由一系列的进程组成,各进程互相依赖。如果要手动杀死jabberd2进程,则要按一定的顺序。如:
#!/bin/bash
killall router
killall resolver
killall c2s
killall s2s
killall sm
jabberd 安装编译
最新推荐文章于 2024-09-14 08:15:15 发布