Последние пару часов я пытался установить Ejabberd сервер вверх. Я построил эджабберд из источника потому что пакет в репозитории ubuntu содержит ошибку. В любом случае после сборки ejabberd из исходников я добавил свой FQDN "s1.noureldin.local"в мой файл /etc/ejabberd/ejabberd.yml.
.
.
## - "example.org"
##
hosts:
- "localhost"
- "s1.noureldin.local"
##
## route_subdomains: Delegate subdomains to other XMPP servers.
.
.
а затем я создал новый пользователь:
ejabberdctl register admin1 s1.noureldin.local P@s5W0rd
затем я попытался подключиться к своему серверу xmpp, и он работал!
Сейчас ПРОБЛЕМА приходит, когда я пытаюсь дать этому новому пользователю права администратора, ejabberd больше не может быть запущен, и Я всегда получаю синтаксическую ошибку в журнале:
2016-07-12 12:00:10.733 [info] <0.7.0> Application lager started on node ejabberd@localhost
2016-07-12 12:00:10.977 [info] <0.7.0> Application crypto started on node ejabberd@localhost
2016-07-12 12:00:11.022 [info] <0.7.0> Application sasl started on node ejabberd@localhost
2016-07-12 12:00:11.084 [info] <0.7.0> Application asn1 started on node ejabberd@localhost
2016-07-12 12:00:11.084 [info] <0.7.0> Application public_key started on node ejabberd@localhost
2016-07-12 12:00:11.146 [info] <0.7.0> Application ssl started on node ejabberd@localhost
2016-07-12 12:00:11.171 [info] <0.7.0> Application fast_yaml started on node ejabberd@localhost
2016-07-12 12:00:11.198 [info] <0.7.0> Application fast_tls started on node ejabberd@localhost
2016-07-12 12:00:11.219 [info] <0.7.0> Application fast_xml started on node ejabberd@localhost
2016-07-12 12:00:11.231 [info] <0.7.0> Application stringprep started on node ejabberd@localhost
2016-07-12 12:00:11.245 [info] <0.7.0> Application cache_tab started on node ejabberd@localhost
2016-07-12 12:00:11.687 [info] <0.7.0> Application mnesia started on node ejabberd@localhost
2016-07-12 12:00:14.902 [info] <0.7.0> Application inets started on node ejabberd@localhost
2016-07-12 12:00:14.904 [error] <0.37.0>@ejabberd_config:get_plain_terms_file:257 Cannot load //etc/ejabberd/ejabberd.yml: Syntax error on line 423 at position 3: did not find expected key
Вот мой ejabberd.yml, вы можете увидеть все синтаксисы, которые я пробовал, но безуспешно:
.
.
.
max_fsm_queue: 1000
###. ====================
###' ACCESS CONTROL LISTS
acl:
##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
## You can put here as many accounts as you want.
##
admin:
user:
- "admin1@s1.noureldin.local"
######## I TRIED THESE AS WELL ########
## - "admin1":"s1.noureldin.local"
## - "admin1@s1.noureldin.local"
##
## user: - "admin1@s1.noureldin.local"
## - user: "admin1@s1.noureldin.local"
## Blocked users
##
## blocked:
## user:
## - "baduser@example.org"
## - "test"
## Local users: don't modify this.
##
local:
user_regexp: ""
##
## More examples of ACLs
##
## jabberorg:
.
.
.
И когда я рекомендую эти строки, он снова работает:
admin:
user:
- "admin1@s1.noureldin.local"
Может ли кто-нибудь помочь мне решить это, пожалуйста? Я искал в Интернете и в ejabberd doc, все люди использовали тот же синтаксис, что и я, но он работал с ними.
Заранее спасибо.
ОК, я обнаружил ошибку. ejabberd.yml файл чувствительность к пробелам!
и каждый sub config ДОЛЖЕН иметь на ДВА пробела больше, чем его родительский, так что мой конфиг станет:
acl:
##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
## You can put here as many accounts as you want.
##
admin:
user:
- "admin1@s1.noureldin.local"
## - "aleksey@localhost"
##
## Blocked users
Или точнее:
acl:
admin:
user:
- "admin1@s1.noureldin.local"