Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Смотрим Makefile, а именно версию порта: PORTVERSION, если она ветки r12 или ниже, то всё замечательно.
Если нет, идём в эту статью и откатываем порт до r12 ветки.
И так будем думать что всё у нас хорошо с версией erlang, то есть поехали дальше:
|
Правим Makefile, меняем: WITHOUT_ODBC=YES, на WITH_ODBC=YES и продолжаем установку:
|
Для пущей уверенности подтверждаем поддержку ODBC.
Далее ждём пока соберётся эрлэнг.
Эрлэнг собран, идём собирать модуль для mysql, тут проблем не возникнет:
|
Ну что, самое главное собрали, осталось дело за малым, идём собирать ejabberd c поддержкой ДБ.
А чтобы ejabberd непотащил с интернета всякой лабуды типа явы и заодно подстрахуемся что соберём всё с поддержкой ДБ, идём в make.conf
Добавляем:
|
Далее идём собирать ejabberd.
|
Подтверждаем выбор ODBC и ждём пока соберётся.
И так всё собрали, идем конфигурить.
Начнём с того, что хороший сервер это всегда поддержка ssl. Приступим к сборке ssl сертификата:
# cd /usr/local/etc/ejabberd/ # openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 \ -keyout privkey.pem -out server.pem -subj \ "/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=jabber.имя_хоста.ru/emailAddress="mail@jabber.имя_хоста.ru # cat privkey.pem >> server.pem # rm privkey.pem # mv server.pem ssl.pem |
И так в /usr/local/etc/ejabberd у нас уже есть готовый сертификат(ssl.pem), продолжим конфигурить.
Редактируем inetrc, велосипед придумывать не стал, смотрите:
|
Кто чего умнее скажет, с удовольствием поправлю в статье и скажу спасибо.
Далее самое интересное, ejabberd.cfg:
{acl, admin, {user, "stopka"}}. {acl, local, {user_regexp, ""}}. {access, pubsub_createnode, [{allow, all}]}. {access, register, [{allow, all}]}. {welcome_message, {"Welcome!", "Welcome to Jabber Service. " "For information about Jabber visit http://jabber.ionitcom.ru"}}. {access, c2s, [{deny, blocked}, {allow, all}]}. {shaper, normal, {maxrate, 128000}}. {shaper, fast, {maxrate, 256000}}. {access, c2s_shaper, [{none, admin}, {normal, all}]}. {access, s2s_shaper, [{fast, all}]}. {access, announce, [{allow, admin}]}. {access, configure, [{allow, admin}]}. {access, muc_admin, [{allow, admin}]}. {access, muc, [{allow, all}]}. {auth_method, odbc}. {odbc_server, {mysql, "mysql_сервер", "имя_бд", "учётка_бд", "пароль_учётки"}}. {odbc_pool_size, 3}. {hosts, ["jabber.имя_хоста.ru"]}. {max_user_sessions, 10000}. {language, "en"}. {listen, [{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]}, {5223, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]}, {5269, ejabberd_s2s_in, [{shaper, s2s_shaper}, {max_stanza_size, 131072} ]}, {5247, ejabberd_service, [{access, all}, {hosts, ["icq.jabber.ionitcom.ru"], [{password, "пароль_для_icq_транспорта"}]}]} ]}. {s2s_use_starttls, true}. {s2s_certfile, "/usr/local/etc/ejabberd/ssl.pem"}. {outgoing_s2s_port, 5269}. {modules, [ {mod_register, [{welcome_message, {"Welcome!","Welcome to this Jabber server."}},{registration_watchers, ["stopka@jabber.ionitcom.ru"]},{access, register}]}, {mod_roster_odbc,[]}, {mod_privacy, []}, {mod_adhoc, []}, {mod_announce, [{access, announce}]}, {mod_configure, []}, {mod_caps, []}, {mod_disco, []}, {mod_stats, []}, {mod_vcard_odbc, [{search, true},{matches, infinity},{allow_return_all, true}]}, {mod_offline_odbc,[]}, {mod_private, []}, {mod_pubsub, [{access_createnode, pubsub_createnode},{plugins, ["default", "pep"]}]}, {mod_muc, [{access, muc},{access_create, muc},{access_admin, muc_admin}]}, {mod_time, []}, {mod_last_odbc, []}, {mod_version, []} ]}. |
Кто более менее с Английским дружит - всё поймет, кому надо подробнее описание - говорите.
Далее, ejabberdctl.cfg я не трогал вообще, всё оставил по умолчанке.
Далее, идём думать на счет БД, создаем бд, даём на неё права, в общем всё по старинке, тут останавливаться не буду. Манов по работе с mysql есть в интернете до хохоту.
И берём закидываем начальный дамп базы для ejabberd, берём его из сорцев ежабера, в /usr/ports/distfiles/ejabberd
И так, имеем настроенный ejabberd и готовую mysql базу для него.
Пойдем стартовать его:
|
И смотрим на успехи:
|
Значит всё отлично, ejabberd встал и уже готов к работе. Можно посмотреть для уверенности sockstat и убедиться что нужный софт слушает нужные порты.
Если мы видим другой результат, то топаем в логи: /var/log/ejabberd
Устранили проблему и пробуем снова, если в /var/log/ejabberd видим файлы вида: *.dump тоесть дампы на сколько я понимаю ejabberd`a
То убиваем эрленговый демон:
|
И заного пробуем стартовать ejabberd.
Далее поговорим об установке icq-транспорта.
С транспортом проблем ни каких не будет, поехали:
|
Там мы выбираем, что мы будем работать в паре с ejabberd, НО без поддержки ДБ, почему "без" сейчас объясню пока собирается транспорт.
Времени не хватило разобраться кто виноват, но суть беды в том, когда я прикручивал транспорт к mysql, после старта транспорт работал нормально, юзверы добавлялись и слизывали в базу свои контакт листы и т.д. Но стоит лишь потушить демон транспорта или ребутнуть его, вся база уходит в ноль и всем приходиться заного добавлять свои данные в ростер, кароче ерунда какая то. По этому остался на локальной базе, она не слетает с ней всё в порядке.
И так идём конфигурить jabber-pyicq.xml
Конфиг очень простой, не забудьте вписать пароль для слинковки транспорта с ejabberd и выкину кусок конфга в конце, чтобы вы не мучались дня два, за это уже отмучался я :)
Вот важный вам кусок:
|
И так идём стартовать:
|
При первом старте может заругаться что нету прав на /var/spool/jabber
На самом деле это директории нету, так что тупо создаем и даём права от ejabberd и снова стартуем.
И далее заходим в клиент, регистрируемся и видим всю прелесть в сервисах сервера.
Веб админку описывать не хочу, больно она убогая, да и малофункциональная, всё как админ всё сможете сделать через управление в сервисах.
Так что на этом всё, эта статья написана по реальным событиям поднятия сервера: jabber.ionitcom.ru
Так же создан мною ресурс(jabber.ionitcom.ru) для школьников в jabber среде, чтобы понятно было что за чем и как переходить плавно с Аськи...
Касаемо настроек ejabberd и транспорта - спрашивайте, информации очень много не хочу всё описывать в этой статье, а то получиться полный хлам.
Вот и всё, жалуйте, хвалите, вы можете связаться со мной через жабу: stopka@jabber.ionitcom.ru или в аську 490977 я через транспорт сижу или написать в личку на форуме Лиссяры, я там тоже как "stopka".
размещено: 2009-07-01,
последнее обновление: 2009-07-04,
автор: stopka
Cancer, 2009-07-04 в 22:26:27
Не плохо было бы добавить линк на форум для обсуждения...
И еще конфиг не поддерживает переносов "\" ?
Для того что бы статья вмещалась в поля...
100pka, 2009-07-04 в 22:59:30
Пофиксим, спасибо.
Cancer, 2009-07-25 в 12:49:31
stopka
Да и еще стоило бы что нить на счет веб интерфейса рассказать показать...
m4rkell, 2009-08-13 в 9:16:07
Админка это лишнее, убогая она реально. Вот прикручивание фишек всяких это да...на форуме есть уже про транспорты, можно было бы добавить откорректировав в статью...что бы не лазить по всему форуму. А так статья отл. все встало на ура у меня. Автору спасиба!
playnet, 2010-01-16 в 22:39:28
Бага: если перенести пид в /var/run, где ему место, оно не будет создаваться, потому что пытается создать файл от ejabberd, а туда может писать только рут. Просто созданный файл его не устраивает.
И в этой доке не описано, что надо создать /var/spool/jabber и права выставить
galex, 2010-02-06 в 12:57:23
Баг №1 в ejabberd-2.0.5:
- пока ручками не внёс в мускул ./ejabberd/work/ejabberd-2.0.5/src/odbc/mysql.sql *уй оно само что-либо в БД создало...
Баг №2 в jabber-pyicq:
- пока в файле /usr/local/etc/rc.d/jabber-pyicq-transport
не укажешь нормальный путь к пид файлу оно не запустится.
Указал ему просто в тмп - ${jabber_pyicq_piddir="/tmp"}
Теперь ломаю мосК в попытке понять реализацию icq-транспорта >.<
playnet, 2010-02-07 в 3:39:30
на r13 уже давно не надо откатывать, отметтье плиз
у меня на 13 все пашет
Klop, 2010-06-20 в 7:53:59
[/b]stopka[b], поправить бы: даунгрейд erlang не ребуется уже. По крайней мере на 8 Release, со свежими портами:
erlang-lite-r13b04_2,1
erlang-mysql-1.0_5
ejabberd-2.1.3
P.S. Аськотранспорт не завёлся. Курю пока.
staskur, 2010-11-12 в 13:45:19
с таким конфигом inetrc как в статье вылетает ошибка синтаксическая
/usr/local/etc/ejabberd/>ejabberdctl register user domen.ru pass
{error_logger,{{2010,11,12},{13,30,47}},"inet_config: syntax error in ~s~n",["/usr/local/etc/ejabberd/inetrc"]}
=ERROR REPORT==== 12-Nov-2010::13:30:47 ===
inet_config: syntax error in /usr/local/etc/ejabberd/inetrc
User user@domen.ru successfully registered
/usr/local/etc/ejabberd/>
а с таким конфигом inetrc
/usr/local/etc/ejabberd/>cat inetrc
{file, resolv, "/etc/resolv.conf"}.
{lookup,["file", "dns"]}.
/usr/local/etc/ejabberd/>
не вылетает ошибка
/usr/local/etc/ejabberd/>ejabberdctl register user2 domen.ru pass2
User user2@domen.ru successfully registered
/usr/local/etc/ejabberd/>
--------------
ejabberd-2.1.5
erlang-lite-r14b,1
erlang-mysql-1.0_6
Vetal, 2010-12-02 в 14:59:56
у меня долго не подымался mod_pubsub (доп статусы разные всякие) нагуглил как-то (сам удивляюсь до сих пор "КАК?) решение все просто:
в конфиге ejabberd.cfg правим
{mod_pubsub, [{access_createnode, pubsub_createnode},{plugins, ["default", "pep"]}]}
на
{mod_pubsub, [{access_createnode, pubsub_createnode},{plugins, ["hometree", "pep"]}]}
фсе теперь публикует песни, показивает доп статусы...
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [10 шт.]