jabberd 安装编译

我用的是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值