(1)安装erlang.下载otp_src_R11B-3.tar.gz文件,解压,命令tar xvzf otp_src_R11B-3.tar.gz ,cd otp_src_R11B-3,进入otp_src_R11B-3目录后依次执行1)./configure 2)make 3)make install 命令。
(2) 安装ejabberd.从下载ejabberd-1.1.3.tar文件,解压,命令tar xvf ejabberd-1.1.3.tar, cd ejabberd-1.1.3,cd src进入src目录后依次执行1)./configure 2)make 3)make install 命令。
(3) 配置ejabberd。
1)所需的配置文件及目录。配置文件:/etc/ejabberd/ejabberd.cfg 日志目录:/var/log/ejabberd/ 域名文件:/root/.hosts.erlang(若没有手动创建) Cookie文件:/root/.erlang.cookie(若没有手动创建)。
2)修改ejabberd.cfg文件。%Hosts name 项中”localhost” 改成本机的域名如test.test.com。3)在/root/.hosts.erlang文件填入本机域名,如:test.test.com.(注意结尾要有“.”),设置服务器的cookie信息,随意设置,但是如配置集群,则需要各个服务器的cookie一致。如:TRHCGTSWFLCBVPMVJYYR。
3)启动ssl加密:
cd /etc/ejabberd
openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
openssl rsa -in privkey.pem -out privkey.pem
cat privkey.pem >> server.pem
rm privkey.pem
Now edit your ejabberd.cfg file and specify the correct location of your server.pem:
{listen, [{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
starttls, {certfile, "/etc/ejabberd/server.pem"}]},
{5223, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
ssl, {certfile, "/etc/ejabberd/server.pem"}]},
(4)启动ejabberd.
erl -pa /var/lib/ejabberd/ebin \
-name ejabberd@first\
-s ejabberd \
-ejabberd config \"/etc/ejabberd/ejabberd.cfg\" \
log_path \"/var/log/ejabberd/ejabberd.log\" \
-sasl sasl_error_logger \{file,\"/var/log/ejabberd/sasl.log\"\} \
-mnesia dir \"/var/lib/ejabberd/spool\"
(5)配置集群。(假设主服务器为域名first,次服务器域名为second)
1)second服务器上的/root/.erlang.cookie文件内容要与first上的一致。
2)second服务器上的ejabberd.cfg文件修改域名为
{hosts, ["second","first"]}
[pre]3) 在second上运行erl -name ejabberd@second -mnesia extra_db_nodes "['ejabberd@first']" -s mnesia[/pre][pre]4)在second上检查共享是否成功。命令mnesia:info(). (注意要有“.” 才能执行)[/pre][pre]如出现running db nodes = [ejabberd@first,ejabberd@second就说明共享成功,在用nodes()验证是否与first相连。正确相连则显示 ejabberd@first[/pre][pre]5)在second服务器上运行 mnesia:change_table_copy_type(schema, node(), disc_copies). (注意有“.”才能运行)拷贝数据库表。[/pre][pre]6) mnesia:add_table_copy(acl,node(),disc_copies). (注意有“.”才能运行)拷贝acl表。[/pre][pre]7)退出q().(注意有“.”才能运行)[/pre][pre]8)在second重新启动ejabberd. [/pre][pre]erl -pa /var/lib/ejabberd/ebin \[/pre][pre] -name ejabberd@second \[/pre][pre] -s ejabberd \[/pre][pre] -ejabberd config \"/etc/ejabberd/ejabberd.cfg\" \ [/pre][pre] log_path \"/var/log/ejabberd/ejabberd.log\" \ [/pre][pre] -sasl sasl_error_logger \{file,\"/var/log/ejabberd/sasl.log\"\}备注:用户实际操秩序更改服务器域名。[/pre]
方法2:集群设置成同一个域名的
<!--[if !supportLists]-->(1) <!--[endif]-->修改% Host name:时做如下修改{hosts, ["first(或者 second)","xxxx.xxxx.com"]}.其他服务器与此方法相同。
<!--[if !supportLists]-->(2) <!--[endif]-->其他与上面的方法相同。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。