I'm setting up an ejabberd server on an Ubuntu LTS 12.04. The community help wiki says I just need to:
- Install the package
- Edit the
hosts
configuration inejabberd.cfg
- Update the admin user's definition
- Restart the server
- Register the admin user from the command line
It's that last step that doesn't work. Here's what I get:
$ sudo ejabberdctl register ejabberd semperubisubsubi.org <password>
Can't register user [email protected] at node '[email protected]': not_allowed
There are a bunch of Google hits for "ejabber register not_allowed". I've spent about four or five hours reading them all. I still can't figure this out. I could really use some help.
I know most of the posts talk about making sure you have agreement between your hostname, your hosts definition, and your node name. The Ubuntu init scripts are setup to use /etc/defaults/ejabberd
to override some of the settings via environment variables. The only thing I have in there is this line:
[email protected]
Which corresponds to my hostname:
$ hostname
semperubisububi.org
$ hostname -f
localhost
$ hostname -s
semperubisububi
I think that hostname -f
is due to adding my FQDN to my /etc/hosts
:
127.0.0.1 localhost susu semperubisububi.org
Oh, I also found a post that says there's a tight bind between the hostname of your machine and the ejabberd configuration. I think while I was wrestling with this setup, I got that mucked up. The post said to rm /var/lib/ejabberd/*
and restart. I wasn't actually able to get the server running properly until I did that. I know the server is running properly:
sudo ejabberdctl status
The node '[email protected]' is started with status: started
ejabberd 2.1.10 is running in that node
And I can see the processes running:
$ ps -ef | grep eja[b]
ejabberd 1152 1 0 13:19 ? 00:00:00 /usr/lib/erlang/erts-5.8.5/bin/beam -K false -P 250000 -- -root /usr/lib/erlang -progname erl -- -home /var/lib/ejabberd -- -name [email protected] -pa /usr/lib/ejabberd/ebin -s ejabberd -kernel inetrc "/etc/ejabberd/inetrc" -ejabberd config "/etc/ejabberd/ejabberd.cfg" log_path "/var/log/ejabberd/ejaberd.log" erlang_log_path "/var/log/ejabberd/erlang.log" -sasl sasl_error_logger false -mnesia dir "/var/lib/ejabberd" -smp disable -noshell -noshell -noinput
ejabberd 1165 1152 0 13:19 ? 00:00:00 inet_gethost 4
ejabberd 1166 1165 0 13:19 ? 00:00:00 inet_gethost 4
ejabberd 30056 1 0 02:43 ? 00:00:00 /usr/lib/erlang/erts-5.8.5/bin/epmd -daemon
It worked. Thanks man