启动ejabberd群集时遇到问题

时间:2019-04-04 10:31:59

标签: erlang ejabberd

我正在尝试使用ejabberd-18.09建立一个ejabberd集群。我看到了该线程Ejabberd Clustering not working,其中的注释表明未安装ejabberd进行集群。 我正在通过ssh在Linux实例上从源代码安装ejabberd,但没有收到询问我是否要为集群安装ejabberd的消息。

我使用以下步骤:

1) wget ejabberd.tgz file
2) tar ejabberd.tgz 
3) cd /ejabberd
4) ./autugen.sh
5) ./configure --enable -mysql
6) make
7) sudo make install 

当我尝试创建集群时,出现与上述线程相同的错误

Error: {no_ping,ejabberd@node1}

我尝试了命令

net_kernel:verbose(1).
ignored

node().
nonode@nohost

所以我的问题是我需要如何安装ejabberd以便将其安装在集群中。

1 个答案:

答案 0 :(得分:0)

node().
nonode@nohost

那怎么可能?如果我运行一个简单的erlang节点,则它没有节点名称:

$ erl
Erlang/OTP 20 [erts-9.3.3.3] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [kernel-poll:false]

Eshell V9.3.3.3  (abort with ^G)
1> node().
nonode@nohost
2> q().
ok

但是ejabberd以节点名称开头:

$ ejaberdctl start

$ ejabberdctl debug
Erlang/OTP 20 [erts-9.3.3.3] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [kernel-poll:true]

Eshell V9.3.3.3  (abort with ^G)
(ejabberd@localhost)1> node().
ejabberd@localhost
(ejabberd@localhost)2> q().
ok

实际上,它的节点名在ejabberd日志中以及命令help中都有提及:

$ ejabberdctl  | grep nodename
  --node nodename    ejabberd node name: ejabberd@localhost