从官网上下载源码后解压,
正常安装依次输入以下命令就OK:
1 | $ ./configure --prefix=/path/to/prefix |
–enable-mio参数指定使用的I/O复用模型.
–enable-debug参数开启调试,启用这个参数后还需要修改对应的xml配置文件,开启XML的log.debug位置来指定调试信息输出,以下是我的配置
1 | <!-- Log configuration - type is "syslog", "file" or "stdout" --> |
–enable-mio-debug参数开启mio调试,mio信息会输出到stderr
目前需要的就是这么多.
如果是直接用Netbeans IDE载入源码在远程主机上编译的话会失败, 建议通过文件共享或者是将整个源码解压到Netbeans在远程机器的对应目录下覆盖,然后configure下,这样Netbeans就可以编译了,而且可以远程查看代码并调试.
调试前需要配置Jabberd2的服务器设置,具体如何配置官网上有很详细的说明,这里给出链接,就不多废话了.
Jabberd2安装配置(中文)
Jabberd2安装配置(英文)
调试
既然Netbeans可以胜任调试,当然就不会手动去用GDB了.
编译完成后可以直接用make install,也可以单独将要调试的可执行文件替换到对应的安装目录下.
用下面的命令启动jabberd2服务器.
$ jabberd –D –B &
实际上这是个perl脚本,不过我们关心的是启动的进程,脚本里启动了router,sm,c2s和s2s四个进程.在Netbeans菜单选择”调试”-“连接调试器”, 在连接对话框里选择远程主机.
以c2s进程为例,在过滤器里输入c2s就可以看到它的进程, 它的实际执行参数是:
$ /usr/local/bin/c2s -c /usr/local/etc/c2s.xml –D
最后要记得在”项目”一栏指定你的源码项目.
确定后就可以开始调试.
对于这类服务端程序如果要调试入口处初始化之类的函数,就在main函数里写个sleep,sleep十几秒,好让你有时间用Netbeans attach到进程上.
创建用户
创建用户可以通过一些XMPP客户端来实现,也可以用telnet命令:
telnet your.server.domain 5222
然后输入:
1 | <stream:stream |
这样就搭建好了Jabberd2的开发环境.