Page 1 of 2 12 LastLast
Results 1 to 15 of 26

Thread: Как установить ejabberd+pyicqt

  1. #1

    Jabber сервер

    Здравствуйте,
    Решил взятся за нелёгкую задачу поднятия джаббер-сервера на роутере Wl500g-P.
    Хотелось бы сразу спросить.
    Это реально вообще?
    Подойдут ли для этого исходники уже готовых серверов?
    Или придётся самому писать?

  2. #2
    При решении той или иной задачи надо понимать какая будет отдача от проекта. Если проект делается просто ради чистого спортивного интереса, для "понять" тогда и задачи надо ставить по "плечу" так сказать. Жаббер не самое простое решение впринципе и писать в одиночку, да еще и без особых знаний и помощи "community" в тестировании задача практически нереальная. Что касательно джаббера и роутера, то советую просто взглянуть на исходники уже готовых серверов и сделать оценку просто по объему кода который надо положить на железку. Да еще остается вопрос быстродействия роутера при решении этой задачи. В общем дерзай, кто не ставит нереальных задач, тот их и не решает

  3. #3

  4. #4
    и как прошло поднятие данного сервера на роутере?

  5. #5
    http://jabberd2.xiaoka.com/
    Этот легкий и немного памяти должен есть

  6. #6
    а не проще купить vds и настроить на нем? благо цены есть от 150р в месяц.

  7. #7
    IMHO, наиболее удобный Jabber-сервер - ejabberd, но он категорически не хочет работать менее чем на 128 М оперативки. Из-за чего я ее даже докупал на VDS, на котором у меня он и крутится.

  8. #8
    Quote Originally Posted by Alexander B. View Post
    IMHO, наиболее удобный Jabber-сервер - ejabberd, но он категорически не хочет работать менее чем на 128 М оперативки. Из-за чего я ее даже докупал на VDS, на котором у меня он и крутится.
    откуда такая информация что ему надо 128мб?
    запустил ejabberd+pyicqt на wl-500gp, замечательно работает, правда пришлось попотеть

  9. #9

    Установка и настройка ejabberd+pyicqt

    Попробую ничего не забыть, но если что забуду вы мне напомните

    Положим что жесткий диск смонтирован в /opt/ и все работы мы будем выполнять в /opt/ejabberd (если кто хочет в базовой файловой структуре /opt/ejabberd заменить на /opt)

    В качестве jabber-сервера берем ejabberd-1.1.4, проблема в том что вторая версия требует epoll, а это есть только в относительно новых ядрах linux (если я не прав то поправьте, также если есть способ обойти этот момент тоже буду благодарен)

    Исходники здесь: http://www.process-one.net/downloads...d-1.1.4.tar.gz

    качаем ejabberd-1.1.4.tar.gz в /opt/ejabberd/src и там его разархивируем

    $ cd /opt/ejabberd/src

    $ wget http://www.process-one.net/downloads...d-1.1.4.tar.gz

    $ tar zxf ejabberd-1.1.4.tar.gz

    Для компиляции нужно установить некоторые утилиты, компиляторы ну и сам erlang

    $ ipkg update; ipkg install buildroot optware-devel erlang erlang-libs openssl-dev grep

    при этом могут быть некоторые конфликты с имеющимися пакетами, вроде бы по зависимостям надо было установить wget-ssl, а у меня уже стоял просто wget, его пришлось удалить

    Если все успешно установилось переходим к конфигурированию сборщика

    $ cd ejabberd-1.1.4/src
    $ ./configure --prefix=/opt/ejabberd

    (ранее я указал что /opt/ejabberd будет основным нашим рабочим местом)
    если ошибок нет то можно собирать и устанавливать

    $ make

    вот тут у меня возникла проблема, erlang не нашел нужные файлы (кстати второй ejabberd прошел компиляцию без ошибок)

    Чтоб избавиться от ошибок копируем файлы

    PKIX1Explicit88.asn1 PKIX1Explicit88.hrl PKIX1Implicit88.asn1 PKIX1Implicit88.hrl

    из /opt/lib/erlang/lib/ssl-3.10/pkix
    в /opt/lib/erlang/lib/ssl-3.10/include

    После успешной компиляции которая длится ... ну в пределах одного часа ))) инсталлируем ejabberd

    $ make install

    Ну и перед запуском нужно подправить конфиг, для успешной работы мне пришлось добавить/раскомментировать следующие строки (предположим что наш сервер будет иметь имя myjabber.ru)

    $ cd /opt/ejabberd/etc/ejabberd

    $ vi ejabberd.cfg #кому-то нравится этот редактор

    {acl, admin, {user, "root"}}.
    {hosts, ["myjabber.ru"]}.
    {language, "ru"}.
    {hosts, ["icq.myjabber.ru", "sms.myjabber.ru"],

    Не плохо бы создать сертификат, пусть самопальный, но он будет

    $ 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=myjabber.ru/emailAddress="mail@myjabber.ru

    $ cat privkey.pem >> server.pem
    $ rm privkey.pem
    $ mv server.pem ssl.pem

    в конфиге вместо ./ssl.pem лучше указать полный путь /opt/ejabberd/etc/ejabberd/ssl.pem

    Перед запуском я сделал пару телодвижений, которые может и не понадобятся:

    $ echo '{file, resolv, "/etc/resolv.conf"}.' >/opt/ejabberd/etc/ejabberd/inetrc

    Вот теперь можно запустить ejabberd

    $ erl -pa /opt/ejabberd/var/lib/ejabberd/ebin -s ejabberd -ejabberd config \"/opt/ejabberd/etc/ejabberd/ejabberd.cfg\" -kernel inetrc \"/opt/ejabberd/etc/ejabberd/inetrc\"

    Не забываем открыть порты 5222, 5223 (не обязательно) для клиентов и 5269 для обмена сервер2сервер, кроме того кому-то понадобится доступ к администрированию через web:

    http://myjabber.ru:5280/admin

    Осталось самая малость, которая отняла у меня гораздо больше сил и времени тоже, это установка icq-транспорта PyICQt. Для его работы нам понадобятся исходники я взял pyicqt-0.8.1.2.tar.gz (на сайте указана последняя версия 0.8.1.1, но я думаю разница невелика)

    $ cd /opt/ejabberd/src
    $ wget http://pyicqt.googlecode.com/files/p...0.8.1.2.tar.gz
    $ tar xzf pyicqt-0.8.1.2.tar.gz

    Еще нам понадобится python, я сначала поставил версию 2.5, но оказалось что пакет работы с картинками pil имеет отличную сборку от самого питона из-за чего не отображаются аватары, поэтому ставим 2.4

    $ ipkg install python24 py-crypto py-pil py24-openssl py24-twisted py24-zope-interface

    Копируем конфиг и правим

    $ cd pyicqt-0.8.1.2
    $ cp config_example.xml config.xml
    $ vi config.xml

    заменить в строках всякие icq.example.org на свое,
    указать номер порта такой же и пароль что и в ejabberd.cfg
    <port>8888</port>
    <secret>secret</secret>
    язык, кодировку
    <lang>ru</lang>
    <encoding>windows-1251</encoding>
    И казалось бы всё, запускаем

    $ python2.4 PyICQt.py

    И вот тут-то возникла самая большая неприятность (с питоном я не имел раньше дело). Программа несколько секунд ждет, а потом выдает сообщение
    Unable to find a reactor.
    Все думаю, в биоректор его )))
    Оказалось проблема решаема, идем в исходники, а именно в src/main.py и заменяем строки:

    reactorchoices = ["epollreactor", "kqreactor", "cfreactor", "pollreactor", "selectreactor", "posixbase", "default"]
    for choice in reactorchoices:
    try:
    exec("from twisted.internet import %s as bestreactor" % choice)
    if choice in ["selectreactor","default"]:
    print selectWarning
    break
    except:
    pass
    try:
    bestreactor.install()
    except:
    print "Unable to find a reactor.\nExiting..."
    sys.exit(1)


    на следующее содержание:

    from twisted.internet import selectreactor as bestreactor
    bestreactor.install()


    После чего указываем реактор в конфиге
    <reactor>selectreactor</reactor>

    и запускаем транспорт

    $ python2.4 PyICQt.py

    Получаем работающий jabber-сервер и icq-транспорт впридачу. Если кто-то найдет ошибку поправьте, если что-то не получается тоже пишите, возможно я что-то пропустил тем более что устанавливал далеко не на чистую систему.
    Last edited by s_a_m; 08-08-2010 at 22:13. Reason: шлифовка текста

  10. #10

    Lightbulb ОГРОМНОЕ СПАСИБО

    В ближайшие дни буду тестить!!



    респект!



    viva la jabber

  11. #11
    Quote Originally Posted by s_a_m View Post
    В качестве jabber-сервера берем ejabberd-1.1.4, проблема в том что вторая версия требует epoll, а это есть только в относительно новых ядрах linux (если я не прав то поправьте, также если есть способ обойти этот момент тоже буду благодарен)
    epool есть в ядре экспериментальной сборки 1.9.2.7-d, подробности на форуме или http://wl500g.googlecode.com

  12. #12
    ./configure --prefix=/opt/ejabberd


    что может ему мешать, пишет, что пермишенн денаед

    из под админа все далаю

  13. #13
    Quote Originally Posted by xwaydc View Post
    ./configure --prefix=/opt/ejabberd


    что может ему мешать, пишет, что пермишенн денаед

    из под админа все далаю
    ipkg-opt и прочее установил? http://wl500g.info/showthread.php?t=5909
    раздел случаем не fat?
    если что обращайся напрямую, контакт добавил вв профиль

  14. #14
    s_a_m,
    а что с нагрузкой? насколько сильно ест ресурсы питон?

  15. #15
    Quote Originally Posted by Kolandr View Post
    s_a_m,
    а что с нагрузкой? насколько сильно ест ресурсы питон?
    если повесить rtorrent то аськотранспорт немного подтормаживает, особенно когда выходишь в онлайн, а если ничего больше не висит то достаточно бодро работает

Page 1 of 2 12 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •