openhift上的ejabberd - 与节点的RPC连接失败

时间:2014-01-07 08:23:24

标签: sed xmpp ejabberd openshift

我正在尝试在openshift上配置DIY墨盒上的ejabberd,遵循指南:

Erlang and Ejabberd on OpenShift

我顺利地跟踪了所有事情:

Next you can start ejabberd running the following 2 commands, which you’ll want to put in your .openshift/action_hooks/start script

没有错误,似乎启动了ejabberd,但是下一个命令:

$OPENSHIFT_DATA_DIR/erl_home/sbin/ejabberdctl register admin localhost password1234

失败了这个错误:

Failed RPC connection to the node ‘ejabberd@127.7.131.1′: {‘EXIT’, {badarg, [{ets,lookup, [local_config, ejabberdctl_access_commands], []}, {ejabberd_config, get_local_option, 1, [{file, "ejabberd_config.erl"}, {line,590}]}, {ejabberd_ctl, get_accesscommands, 0, [{file, "ejabberd_ctl.erl"}, {line,236}]}, {ejabberd_ctl, process,1, [{file, "ejabberd_ctl.erl"}, {line,199}]}, {rpc, ‘-handle_call_call/6-fun-0-’, 5, [{file, "rpc.erl"}, {line,205}]}]}}

Commands to start an ejabberd node: start Start an ejabberd node in server mode debug Attach an interactive Erlang shell to a running ejabberd node live Start an ejabberd node in live (interactive) mode

Optional parameters when starting an ejabberd node: –config-dir dir Config ejabberd: /var/lib/openshift/52c9674d5973ca7734000180/app-root/data//erl_home/etc/ejabberd –config file Config ejabberd: /var/lib/openshift/52c9674d5973ca7734000180/app-root/data//erl_home/etc/ejabberd/ejabberd.cfg –ctl-config file Config ejabberdctl: /var/lib/openshift/52c9674d5973ca7734000180/app-root/data//erl_home/etc/ejabberd/ejabberdctl.cfg –logs dir Directory for logs: /var/lib/openshift/52c9674d5973ca7734000180/app-root/data//erl_home/var/log/ejabberd –spool dir Database spool dir: /var/lib/openshift/52c9674d5973ca7734000180/app-root/data//erl_home/var/lib/ejabberd –node nodename ejabberd node name: ejabberd@127.7.131.1

我不确定导致错误的原因......似乎它正在尝试连接到localhost(由于节点名:ejabberd@127.7.131.1)。但是,我在博客上的先前命令中发现了sed每个本地主机的气味。

以前有人见过这个吗?关于如何调试的任何线索也受到高度赞赏,因为我对openshift或ejabberd以及linux不是很熟悉...非常感谢你提前!

4 个答案:

答案 0 :(得分:1)

您需要使用主机而不是localhost运行。

$OPENSHIFT_DATA_DIR/erl_home/sbin/ejabberdctl register admin <replacewithyourhost> password1234  

答案 1 :(得分:1)

我写了这篇博文,并在我创建的新DIY应用程序中看到了这个错误。这是由于erlang和openhl包中的openssl包的错误。我在erlang源代码中添加了一个补丁,以便新的编译工作。

导致此问题的错误在于:https://bugzilla.redhat.com/show_bug.cgi?id=1023017

答案 2 :(得分:0)

为此

OPENSHIFT_DATA_DIR/erl_home/sbin/ejabberdctl register admin $OPENSHIFT_DIY_IP password1234

然而它也会返回错误:

 {error_logger,{{2014,1,13},{21,11,24}},"Protocol: ~tp: register/listen error: ~tp~n",["inet_tcp",econnrefused]} {error

以上

你需要杀死包括epmd在内的所有ejabberd进程。

答案 3 :(得分:0)

我有一次这个问题,我的解决方案是编辑/ etc / hosts(对于windows-C:\ Windows \ System32 \ drivers \ etc \ hosts)文件,并确保我的公共ip有一个主机名条目地址和我希望ejabber回应的域名。

0.0.0.0 hostname.domain.com主机名

1.1.1.1(您的IP)your-hostname.your-domain your-hostname