;)
  thinkIT.ru — первый IT-портал города  
 
 
Первый IT-портал города
 
 
Почта:
Пароль:
    Забыли пароль?
  • Звездные войны: Эпизод I 3D
  • Путешествие-2 3D
  • Значит, война
  • Код доступа «Кейптаун»
  • Такие разные близнецы
  • Хроника
  • На Байкал
  • На грани
  • Все любят китов
  • Одержимая
  • Ржевский против Наполеона 3D

Кино в Таганроге

 

Рубрика: soft

9
Установка ejabberd с базой на MySql + установка PyICQt во FreeBSD

Установка ejabberd с базой на MySql + установка PyICQt во FreeBSD


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

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

Данный мануал разработан на основе процесса установки сервера jabber.tsure.ru

Автор: Groall | Добавлено: 28 Мая, 2009 | Мало комментариев | Просмотров: 8937

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

Читаем нужный пункт соответственно выбранному Вами способу установки.

2.1. Установка ejabberd из портов

В /etc/make.conf прописываем
WITHOUT_JAVA=yes
WITH_ODBC=yes
Это нужно чтобы ejabberd собрался без Java и с поддержкой ODBC.
Далее как всегда

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

2.2. Установка ejabberd из сорцов

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

./configure --enable-odbc
gmake

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

gmake install


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

/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

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

ejabberdctl start

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

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

Остановка ejabberd

ejabberdctl stop

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

ejabberd start

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

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

Остановка ejabberd

ejabberd stop


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

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

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

4.2. Установка MySQL из сорцов

Скачиваем последний релиз MySQL с официального сайта и распаковываем архив.
./configure
gmake
gmake install

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

Если MySQL устанавливался из портов, то запуск производится командой
/usr/local/etc/rc.d/mysql-server start
При установке из исходников, MySQL запускается командой
/usr/local/mysql/bin/safe_mysqld &
Запускаем утилиту 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", "jabber.tsure.ru"}}.
Меняем авторизацию средствами 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.

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

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

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

cd /usr/local/etc/
ee 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 -->
  <!-- (this is the default for Jabberd2) -->
  <port>5347</port>

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

<!-- The authentication token to use when connecting to the Jabber server -->
<secret>FkJ32dksd67f54_fvi21</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>

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

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

Открываем уже известный 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
Послесловие. Идея написать данную статью родилась после суток шаманства над ejabberd`ом, который никак не хотел заводиться с MySQL. И все таки был поднят jabber.tsure.ru с базой на мускле.
Авторы: Kult и Groall
28 мая 2009


Теги: ejabberd, MySQL, PyICQt, FreeBSD, Серверное ПО | Оценка: (5) |

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

Saint Saint | 28 Мая 2009 22:08ссылка сюда
Саня, всё мегаофигенокруто! И как раз по IT. Ссылка на твой http://jabber.tsure.ru/ вверху страницы была бы весьма кстати ;)
+500
quadroD quadroD | 28 Мая 2009 23:50ссылка сюда
Спасибо!
iNik iNik | 28 Мая 2009 23:57ссылка сюда
Очень круто! Просто и емко. +5 Спасибо.

Только поправьте пожалуйста пункт 4.2, наверное нужно перенести ./configure на следующую строчку, а то не совсем логично...
Groall Groall | 29 Мая 2009 08:29ссылка сюда
Отлично. Рад, что понравилось
Анонимность Серая Анонимность Серая | 29 Октября 2009 08:15ссылка сюда
Спасибо. помогло реально ибо не сиавилось из портов на freebsd 7.0.
Собрал из сырцов.
Только вот путь при сборке по умолчанию к библиотекам erlang для mysql в другом месте лежат

не в /usr/lib/erlang/lib а в /lib/ejabberd/ebin
Анонимность Серая Анонимность Серая | 14 Января 2010 15:54ссылка сюда
ага... тока хреново что пароли в мускеле лежат в рикрытом виде... :%
Анонимность Серая Анонимность Серая | 03 Марта 2010 16:51ссылка сюда
Скачиваем файл со структурой БД
нет там файла :(
где брать ?
Saint Saint | 03 Марта 2010 17:39ссылка сюдаответ на
А поиск в кэше уже отменили?
http://209.85.135.132/search?hl=ru&newwindow=1&q=cache%3Ahttp%3A%2F%2Fsvn.process-one.net%2Fejabberd%2Ftrunk%2Fsrc%2Fodbc%2Fmysql.sql&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=
Анонимность Серая Анонимность Серая | 12 Июня 2011 02:19ссылка сюдаответ на
Да, отменили.
Авторизуйтесь чтобы не быть Серой Анонимностью!

 

Играть в тетрис бесплатно он-лайн, без регистраций и смс =)






Время играть в тетрис!

Играть в тетрис проще простого. Жмем на иконку и вперед.


Найди нас везде!

Теперь ты можешь найти нас во всех популярных социальных сетях. Читай thinkit.ru где тебе удобно!


Банкоматы Таганрога

Теперь ты сможешь легко узнать, где именно находится ближайший банкомат.

 

 
  CreativeCUBE - разработка и поддержка сайтовПроизводство и поддержка сайтов
cCube.ru
  При воровстве с этого сайта ссылка обязательна.
Copyright © 2008-2012 thinkit.ru
Связаться с нами