Документация по ОС FreeBSD Вторник, 17.06.2025, 20:04
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Установка ejabberd с базой на MySql и установка ICQ транспорта PyICQt [2009]
В данной статье мы расскажем,как установить и настроить ejabberd с авторизацией через MySQL. В дополнение будет приведен раздел по установке и настройке pyICQ-t - транспорта ICQ для ejabberd.

Процедуры установки ejabberd и mysql приведены в двух вариантах:
установка из портов и установка из исходных текстов. Многие скажут "ставить из исходных текстов на FreeBSD плохо" - однако, когда у вас не установится из портов или установится, но не заработает, то Вам придется ставить из исходников. Поэтому, расскажем и про них.

1. Установка erlang

Для начала нам нужно установить erlang. Чтобы не ставить много лишнего, достаточно установить erlang-lite.

В /usr/ports/lang/erlang-lite/Makefile

        WITHOUT_ODBC=yes

меняем на

        WITH_ODBC=yes

Выполняем

        cd /usr/ports/lang/erlang-lite
        make install clean


2. Установка ejabberd

Установка ejabberd из портов
В /etc/make.conf прописываем

        WITHOUT_JAVA=yes
        WITH_ODBC=yes


Это нужно чтобы ejabberd собрался без Java и с поддержкой ODBC.
Далее как всегда

        cd /usr/ports/net-im/ejabberd/
        make install clean


Установка ejabberd из исходных текстов

Скачиваем последний релиз с официального сайта.
Распаковываем архив и конфигурируем ejabberd с поддержкой ODBC

        ./configure --enable-odbc
        gmake


Устанавливаем его командой

        gmake install

Объясним назначение созданных после установки из исходников файлов и каталогов:

/etc/ejabberd/ содержит конфигурационные файлы:
    ejabberd.cfg конфигурационный файл ejabberd
    ejabberdctl.cfg конфигурационный файл административного скрипта inetrc настройки DNS

/sbin/ejabberdctl  административный скрипт

/var/lib/ejabberd/
    .erlang.cookie куки Erlang
    db файл базы Mnesia. Родная база ejabberd
    ebin бинарные файл Erlang (*.beam). По сути плагины
    lib системные библиотеки (*.so)
    msgs Переведенные сообщения (*.msgs)

/var/log/ejabberd/ файлы лога. Очень полезные файлы, когда что-то не хочет работать.
    ejabberd.log лог самого ejabberd
    sasl.log лог Erlang/OTP

3. Запуск ejabberd

Запуск ejabberd, установленного из исходных текстов

        ejabberdctl start

Проверка статуса

        ejabberdctl status

        Node ejabberd@localhost is started. Status: started
        ejabberd is running


Остановка ejabberd

        ejabberdctl stop

Запуск ejabberd, установленного из портов

        ejabberd start

Проверка статуса

        ejabberd status

        Node ejabberd@localhost is started. Status: started
        ejabberd is running


Остановка ejabberd

        ejabberd stop

4. Установка и настройка MySQL

Установка MySQL из портов

        cd /usr/ports/databases/mysql50-server/
        make install clean

Запуск и настройка MySQL.

Запуск производится командой

        /usr/local/etc/rc.d/mysql-server start

Запускаем утилиту mysql

        ./mysql

Создаём базу под ejabberd, так и назовём, ejabberd.

        CREATE DATABASE 'ejabberd' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Создаём пользователя и наделяем правами.

        GRANT ALL PRIVILEGES ON * . * TO 'ejabberd'@'%' IDENTIFIED BY 'my_pass'
            WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

Обновляем привилегии.

        FLUSH PRIVILEGES;

5. Настройка ejabberd для использования базы MySQL.

Открываем в любимом текстовом редакторе конфиг ejabberd.cfg. Комментарии начинаются с %
Прописываем виртуальные хосты. Желательно, чтобы они совпадали с реальными доменами, на которых стоит серв. Например, jabber.tsure.ru {hosts, [["jabber.tsure.ru"]]}.
Прописываем кто у нас будет админ, через запятую. Где admin_name - логин админа,
localhost - хост, в котором он админит {acl, admin, {user, "admin_name", "localhost"}}.

Меняем авторизацию средствами ejabberd на авторизацию с помощью odbc.
Комментируем строчку

        {auth_method, internal}.

И расскоментируем

        {auth_method, odbc}.

Ищем строку начинающаюся с

        %%{odbc_server, {mysql,

Убираем комментарий и прописываем в неё данные для подключения к базе jabber. Например,

        {odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "my_pass"}}.

Меняем язык по умолчанию для сообщений сервера

        {language, "ru"}.

Меняем значения:

        mod_last на mod_last_odbc
        mod_offline на mod_offline_odbc
        mod_privacy на mod_privacy_odbc
        mod_private на mod_private_odbc
        mod_roster на mod_roster_odbc
        mod_vcard на mod_vcard_odbc


Сохраняем и закрываем ejabberd.cfg

Скачиваем файл со структурой БД
B этом файле меняем строку "SET table_type=InnoDB;" на "SET storage_engine=InnoDB;"
и удаляем последние четыре закомментированные строки.
Подключаемся к базе данных и выполняем полученный sql-код. Например:

        mysql>\. mysql.sql

Теперь скачиваем модули erlang для работы с MySQL

Распаковываем файлы архива в /usr/lib/erlang/lib/ejabberd-<номер_версии>/ebin/
и меняем их владельца:

        chown ejabberd:ejabberd /usr/lib/erlang/lib/ejabberd-<номер_версии>/ebin/mysql*
        
После всего запускаем сервис и смотрим логи. Должно заработать.
Регистрируем своего админа из любимого клиента или командой на сервере

        ejabberdctl register admin_name hostname password

и наслаждаемся жизнью.
Для продвинутых настроек и статистики используйте web-admin https://hostname:5280/admin/
Логин и пароль ваши, логин должен быть полный JID.

6.Установка ICQ-транспорта

        cd /usr/ports/net-im/jabber-pyicq/
        make install clean


Далее идём редактировать конфигурационный файл pyICQt:

        cd /usr/local/etc/
        vi jabber-pyicq.xml

Имя траспорта. Обычно оно строится на базе домена непосредственно jabber
с добавлением icq. в начале. К примеру, у jabber домен jabber.tsure.ru,
транспорт будет называться icq.jabber.tsure.ru.

        <!-- The JabberID of the transport. -->
        <jid>icq.jabber.tsure.ru</jid>

Адрес, где находится jabber-сервер. Если находится на той же машине, где
и сам jabber, то 127.0.0.1

         <!-- The IP address of the main Jabberd server -->
        <mainServer>127.0.0.1</mainServer>

Имя jabber-сервера:

        <!-- The JID of the main Jabber server -->
         <mainServerJID>jabber.tsure.ru</mainServerJID>


Сайт сервера. Можно написать что угодно, на работе оно не сказывается.

        <!-- The website of the Jabber service -->
        <website>http://jabber.tsure.ru/<;/website>


Порт, по которому ejabberd и pyicqt будут обмениваться информацией.

        <!-- The TCP port to connect to the Jabber server on -->
        <!-- The hostname of the ICQ server you wish to connect to -->
        <icqServer>login.icq.com</icqServer>Jabberd2) -->
        <port>5347</port>


Пароль, используемый для аутентификации на сервере. Скопируйте
куда-нибудь или запомните - он ещё пригодится для конфиругирования ejabberd.cfg

        <!-- The authentication token to use when connecting to the Jabber server -->
        <secret>FkJ32dsdfsf3322_523424</secret>


Без комментариев.

        <!-- The default language to use (for error/status messages) -->
        <lang>ru</lang>


Кодировка. Обычно это cp1251. Так и запишем.

        <!-- Default message encoding to use -->
        <encoding>cp1251</encoding>


Адрес ICQ-сервера для коннекта транспорта. Какой больше нравится, такой и устанавливаем.

        <!-- The hostname of the ICQ server you wish to connect to -->
        <icqServer>login.icq.com</icqServer>


Порт. Обычно это 5190. Если сервер использует другой порт, то меняем.

        <!-- The port of the ICQ server you wish to connect to -->
        <icqPort>5190</icqPort>


Ну и всё, пожалуй, - остальные настройки являются опциональными.

7. Подключение транспорта

Открываем уже известный ejabberd.cfg.

Убираем комментарии со следующего блока:

          %%{8888, ejabberd_service, [[
          %%                        {access, all},
          %%                        {shaper_rule, fast},
          %%                        {ip, {127, 0, 0, 1}},
          %%                        {hosts, [[ "icq.example.org", "sms.example.org"]],
          %%                         [[ {password, "secret"}]]
          %%                        }
          %%                       ]]},

Ставим свой порт.

        {5347, ejabberd_service, [[

Хосты.

        {hosts, [[ "icq.jabber.tsure.ru", "sms.jabber.tsure.ru"]],

Ранее придуманный пароль аутентификации.

        [[ {password, "FkJ32dksd67f54_fvi21"}]]

Всё. Сохраняем. Перезапускаем.

        jabber-pyicq-transport restart && ejabberdctrl restart


Источник: http://www.opennet.ru/base/net/ejabberd_setup.txt.html
Категория: Net | Добавил: oleg (01.06.2009) | Автор: Groall и Kult
Просмотров: 802 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025