вторник, 19 января 2010 г.

установка OpenFire на CentOS 5

Задача:
Установить джаббер сервер OpenFire на CentOS, в качестве БД будет использоваться MySQL.
Я сейчас не буду очень подробно расписывать весь процесс установки, так как он достаточно прост и в инете можно найти множество подробных руководств с картинками. Вместо этого основное внимание уделю тем граблям на которые наткнулся.
Реализация:
Так как уже есть установленный CentOS 5.2, решено было разворачивать все именно на нем.
Однако, если просто установить БД и OpenFire, то при попытке зайти в консоль администратора мы будем получать ошибку Java, поэтому прежде чем перейти непосредственно к установке, обновим CentOS

yum update

Даем свое согласие на скачивание и установку кучи пакетов и уходим пить чай... зависимо от скорости инета, лично я и выспаться успел.
По окончанию обновления имеем CentOS 5.4
Сного переходим к установке Jabber сервера
Сначала установим MySQL

yum install mysql-server

запускаем установленный MySQL

service mysqld start

Зададим пароль администратора

mysqladmin -u root password "your_password"

Соеденяемся с MySQL

mysql -u root -p

Теперь необходимо создать базу и дать на нее привилегии (подробное описание пока не прикладываю)

Теперь все готово к установке OpenFire.
Качаем его с официального сайта коммандой вида

wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-3.6.4-1.i386.rpm

и устанавливаем

rpm -ivh openfire-3.6.4-1.i386.rpm

Запускаем

/etc/init.d/openfire start

Теперь открываем в браузере http://:9090
Попадаем в консоль администратора. Вполне очевидно доходим до шага выбора БД, сначала говорим что мы будем пользоваться внешней БД, затем в следующем окне настраиваем коннектор к MySQL.

Тут я столкнулся с граблями соеденения с базой данных. Если не получается, то необходимо убедиться в наличии прав у пользователя на коннект к базе, притом не только с локального хоста, убедиться что база вообще запущена и ее не режет фаервол. Немного помучавшись с правами все должно получиться.
Далее есче несколько понятных шагов по окончательной настройке.
По непонятной мне причине, попасть сразу в админскую консоль я не смог, хотя пароль вводил правильно, не мог же я быть настолько криворуким...
Пришлось востанавливать админский пароль, соеденившись с БД и выполнив запрос

update ofUser set password='', encruptedPassword=NULL where username='admin';

Вот теперь почти все... сервер установлен, работает, можно создать тестового пользователя и попробовать как все работает.
Но остается последняя проблема - проблема кодировок. Если присмотреться к таблицам, то все они в кодировке latin1, соответственно русские символы он не просто не правильно отображает, а не воспринимает вообще, заменяя на знаки вопросов.
Можно вручную сменить кодировки всех таблиц и полей, но это слишком долго...
Проще выгрузить базу, исправить в выгруженном файле кодировки при создании таблиц на utf8 и залить дамп обратно. В моем случае это полностью решило все проблемы с кодировками.
Вот пример куска скрипта БД, жирным выделен кусок где надо сменить кодировку

CREATE TABLE `ofExtComponentConf` (
`subdomain` varchar(255) NOT NULL,
`wildcard` tinyint(4) NOT NULL,
`secret` varchar(255) default NULL,
`permission` varchar(10) NOT NULL,
PRIMARY KEY (`subdomain`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

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

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