Устанавливаем ejabberd с поддержкой MySQL на CentOS
Итак это очередная статья, типа «Накой хрен нужен 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

Распаковываем (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
Всем удачи!