Устанавливаем ejabberd с поддержкой MySQL на CentOS

17 Февраль 2012, Автор: 2pick Опубликовано: 10:53 | Оставить комментарий!

Итак это очередная статья, типа «Накой хрен нужен VDS/VPS». Сегодня будем ставить себе Jabber.

Если ты до сих пор не заимел себе VDS, то могу посоветовать ФерстВдс

Джаббер серверов полно на данный момент, из них самые распространенные: OpenFire и EJabberD. OpenFire на своей VDS я так завести и не смог, поскольку не хватало ресурсов железа для Java Virual Machine (да-да… оно работает на яве)… После часу танцев с бубном — решил поставить EjabberD. Благо статей полно на данный момент. Чем же отличается моя от всех остальных? Да все просто… чтоб разобраться как ставить — пришлось собирать инфу с нескольких статей, дабы все заработало. Итак поехали.

Заходим в шелл под рутом. Набираем комманду

#yum install ejabberd

Послали? Ну значит не хватает репозитория. Данный демон имеется в репозитории EPEL. Ставим:
На i386

rpm -Uhv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

На x64 ищите сами… благо есть где :) ) Теперь то он должен поставиться. Набираем комманду.

#yum install ejabberd

Согласились с установкой, юм стянянет зависимости. Все поставилось… Далее лезем редактировать файл /etc/ejabberd/ejabberd.cfg (это и есть конфиг демона). Добавляем админа в разделе admin:

{acl, admin, {user, "admin_nick", "host_server"}}

Где admin_nick — ник администратора, host_server — домен сервера (можно айпишнк прописать). Ищем раздел host и редактируем список с хостами:

{hosts, ["host_server"]}

Тут вроде все… Запускаем демона

service ejabberd start
Добавляем нового пользователя(админа), логин должен соответствовать с записью админа в конфиге:

ejabberdctl register admin myserver.ru 123

Где admin — имя пользователя, myserver.ru — сервак, 123 — пароль. И лезем в http админку: http://myserver.ru:5280/admin. Управление хостом находится в разделе «Виртуальные хосты».

Дамп базы можно делать так:
1. Создаем папку для бэкапов (ну скажем в домашней лиректории рута)

mkdir /root/ejabberd_backup

2. Дампим базу

ejabberdctl backup /root/ejabberd_backup/2011.09.09

 

На этом обычная установка закончена. Далее будет рассмотрен враиант с базой на MySQL.

Итак прежде чем начать установку на MySQL убедитесь в том, что ваш мускул поддерживает InnoDB, иначе смысле нет переходить на него… Можно просто посмотреть в phpmyadmin, создав новую таблицу и выбрав тип InnoDB. Если нет то включаем. Нужно отредактировать конфиг мускула (/etc/my.cnf). Ишем строчку

skip-innodb

И комментим ее… (если уже закомменчено то иннодб должно быть включено у вас). После этого рестартим MySQL демон:

service mysql restart

Если загрузка демона не удалась то не хватает оперативки… Расширяйте тариф, либо просто забейте :) . Если все удачно то через phpmyadmin загружаем образ базы

Скачать дамп базы
скачать можно здесь 

Если все прошло удачно то едем дальше.

Снова лезем в конфиг EJabberD (/etc/ejabberd/ejabberd.cfg). Тип аутентификации выбираем odbc:

{auth_method, odbc}

Ищем раздел с mysql И редактируем строчки с настройками (откомментить не забудьте):

{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "password"}}]

указываем домен для Jabber’a, сервак MySQL, DB, username, pass. Для конкретного хоста конфиг прописываем так:

{host_config, "domain.ru", [    {odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "password"}}]}

Меняем строчки:

{mod_last,     []},  на {mod_last_odbc,     []},
{mod_offline,  []}, на {mod_offline_odbc,  []},
{mod_roster,   []}, на {mod_roster_odbc,   []},
{mod_vcard,    []}, на {mod_vcard_odbc,    []},

Далее нужно установить модули для работы с мускулом. Вытянуть их можно с сайта разрабов через svn:

svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql

Скачать скрипты
Если svn не стоит, то вот уже слитые скрипты :).

Распаковываем (unrar x ejabberd-mysql-odbc.rar). Если unrar Не стоит, то можно через юм поставить.

Входим в распакованую папку и выполняем комманды:

 ./build.sh
cd ebin/
cp mysql* /usr/lib/ejabberd/ebin/
chown -R ejabberd /usr/lib/ejabberd/ebin/

Рестартим ejabberd:

service ejabberd restart

Всем удачи! :)

Комментариев нет

Оставить комментарий