我正在尝试使用ejabberd-18.09建立一个ejabberd集群。我看到了这个帖子Ejabberd Clustering not working,其中评论说未安装ejabberd进行群集。我在linux实例(通过ssh)上从源代码安装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以便安装它以便在集群中进行设置。
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日志中提到,也在命令帮助中提到:
$ ejabberdctl | grep nodename
--node nodename ejabberd node name: ejabberd@localhost